Commit 0613df1a authored by Didier Bathily's avatar Didier Bathily

Merge branch 'develop' of github.com:Sankore/Sankore-3.1 into develop

parents 064e0b8d 22ec82a8
......@@ -11,7 +11,7 @@ CONFIG += debug_and_release \
VERSION_MAJ = 2
VERSION_MIN = 00
VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error
VERSION_PATCH = 08
VERSION_PATCH = 09
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
VERSION = $$replace(VERSION, "\\.r", "")
......
......@@ -550,8 +550,8 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parsePage(const QString &pageFileNam
pageFile.close();
return QDomElement();
}
} else if (tagname == tUBZGroup) {
group = parseGroupPageSection(nextTopElement);
} else if (tagname == tUBZGroups) {
group = parseGroupsPageSection(nextTopElement);
if (group.isNull()) {
qDebug() << "Page doesn't contains any groups.";
pageFile.close();
......@@ -634,6 +634,7 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parseSvgPageSection(const QDomElemen
else if (tagName == tUBZLine) parseUBZLine(nextElement, svgElements);
else if (tagName == tUBZPolygon) parseUBZPolygon(nextElement, svgElements);
else if (tagName == tUBZPolyline) parseUBZPolyline(nextElement, svgElements);
else if (tagName == tUBZGroups) parseGroupsPageSection(nextElement);
nextElement = nextElement.nextSiblingElement();
}
......@@ -694,12 +695,34 @@ bool UBCFFAdaptor::UBToCFFConverter::writeExtendedIwbSection()
// extended element options
// editable, background, locked are supported for now
QDomElement UBCFFAdaptor::UBToCFFConverter::parseGroupPageSection(const QDomElement &element)
QDomElement UBCFFAdaptor::UBToCFFConverter::parseGroupsPageSection(const QDomElement &groupRoot)
{
// First sankore side implementation needed. TODO in Sankore 1.5
Q_UNUSED(element)
qDebug() << "parsing ubz group section";
if (!groupRoot.hasChildNodes()) {
qDebug() << "Group root is empty";
return QDomElement();
}
QDomElement groupElement = groupRoot.firstChildElement();
while (!groupElement.isNull()) {
QDomElement extendedElement = mDataModel->createElementNS(iwbNS, groupElement.tagName());
QDomElement groupChildElement = groupElement.firstChildElement();
while (!groupChildElement.isNull()) {
QDomElement extSubElement = mDataModel->createElementNS(iwbNS, groupChildElement.tagName());
extSubElement.setAttribute(aRef, groupChildElement.attribute(aID, QUuid().toString()));
extendedElement.appendChild(extSubElement);
groupChildElement = groupChildElement.nextSiblingElement();
}
mExtendedElements.append(extendedElement);
groupElement = groupElement.nextSiblingElement();
}
qDebug() << "parsing ubz group section";
return groupRoot;
}
QString UBCFFAdaptor::UBToCFFConverter::getDstContentFolderName(const QString &elementType)
......@@ -1250,6 +1273,19 @@ bool UBCFFAdaptor::UBToCFFConverter::setCFFAttribute(const QString &attributeNam
{
setGeometryFromUBZ(ubzElement, svgElement);
}
else
if (attributeName.contains(aUBZUuid))
{
QString parentId = ubzElement.attribute(aUBZParent);
QString id;
if (!parentId.isEmpty())
id = "{" + parentId + "}" + "{" + ubzElement.attribute(aUBZUuid)+"}";
else
id = "{" + ubzElement.attribute(aUBZUuid)+"}";
svgElement.setAttribute(aID, id);
}
else
if (attributeName.contains(aUBZHref)||attributeName.contains(aSrc))
{
......@@ -1799,7 +1835,10 @@ bool UBCFFAdaptor::UBToCFFConverter::parseUBZPolygon(const QDomElement &element,
if (0 < iwbElementPart.attributes().count())
{
QString id = QUuid::createUuid().toString();
QString id = svgElementPart.attribute(aUBZUuid);
if (id.isEmpty())
id = QUuid::createUuid().toString();
svgElementPart.setAttribute(aID, id);
iwbElementPart.setAttribute(aRef, id);
......
......@@ -63,7 +63,7 @@ private:
QDomElement parseSvgPageSection(const QDomElement &element);
void writeQDomElementToXML(const QDomNode &node);
bool writeExtendedIwbSection();
QDomElement parseGroupPageSection(const QDomElement &element);
QDomElement parseGroupsPageSection(const QDomElement &groupRoot);
bool createBackground(const QDomElement &element, QMultiMap<int, QDomElement> &dstSvgList);
QString createBackgroundImage(const QDomElement &element, QSize size);
......
......@@ -28,6 +28,7 @@ const QString tIWBPageSet = "pageset";
const QString tId = "id";
const QString tElement = "element";
const QString tUBZGroup = "group";
const QString tUBZGroups = "groups";
const QString tUBZG = "g";
const QString tUBZPolygon = "polygon";
const QString tUBZPolyline = "polyline";
......@@ -67,6 +68,7 @@ const QString aBackground = "background";
const QString aCrossedBackground = "crossed-background";
const QString aUBZType = "type";
const QString aUBZUuid = "uuid";
const QString aUBZParent = "parent";
const QString aFill = "fill"; // IWB attribute contans color to fill
const QString aID = "id"; // ID of any svg element can be placed in to iwb section
......@@ -334,8 +336,10 @@ stroke-lineshape-end \
const QString ubzElementAttributesToConvert(" \
xlink:href, \
src, \
transform \
");
transform, \
uuid \
"
);
// additional attributes. Have references in SVG section.
const QString svgElementAttributes(" \
......
......@@ -377,7 +377,7 @@
</message>
<message>
<source>Show Desktop</source>
<translation>Afficher le bureau</translation>
<translation>Bureau</translation>
</message>
<message>
<source>Ctrl+Shift+H</source>
......@@ -1961,7 +1961,7 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
</message>
<message>
<source>Add a link</source>
<translation>Ajouter un lien.web</translation>
<translation>Ajouter un lien web</translation>
</message>
<message>
<source>Page: %0</source>
......
......@@ -377,7 +377,7 @@
</message>
<message>
<source>Show Desktop</source>
<translation>Afficher le bureau</translation>
<translation>Bureau</translation>
</message>
<message>
<source>Ctrl+Shift+H</source>
......@@ -1961,7 +1961,7 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
</message>
<message>
<source>Add a link</source>
<translation>Ajouter un lien.web</translation>
<translation>Ajouter un lien web</translation>
</message>
<message>
<source>Page: %0</source>
......
......@@ -70,12 +70,12 @@
$("div.tools_change").removeClass("tools_compass");
window.sankore.setTool('pen');
window.sankore.setPenColor('#' + HSBToHex(hsb));
sankore.returnStatus("PEN installed", penFlag);
//sankore.returnStatus("PEN installed", penFlag);
} else {
$("div.tools_change").addClass("tools_compass");
window.sankore.setTool('compass');
window.sankore.setPenColor('#' + HSBToHex(hsb));
sankore.returnStatus("Compass installed", penFlag);
//sankore.returnStatus("Compass installed", penFlag);
}
},
keyDown = function (ev) {
......@@ -224,12 +224,12 @@
$("div.tools_change").removeClass("tools_compass");
window.sankore.setTool('pen');
window.sankore.setPenColor('#' + HSBToHex(tmpColor.b));
sankore.returnStatus("PEN installed", penFlag);
//sankore.returnStatus("PEN installed", penFlag);
} else {
$("div.tools_change").addClass("tools_compass");
window.sankore.setTool('compass');
window.sankore.setPenColor('#' + HSBToHex(tmpColor.b));
sankore.returnStatus("Compass installed", penFlag);
//sankore.returnStatus("Compass installed", penFlag);
}
//$(tmpColor.a).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(tmpColor.b));
return false;
......@@ -261,7 +261,7 @@
cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
penFlag = (penFlag)?false:true;
setNewColor(col, cal.get(0));
sankore.returnStatus("startEditing()", penFlag);
//sankore.returnStatus("startEditing()", penFlag);
},
show = function (ev) {
var cal = $('#' + $(this).data('colorpickerId'));
......
var sankoreLang = {
display: "Close",
display: "Display",
edit: "Edit",
short_desc: "Select the number \"three\".",
add: "Add new block",
enter: "Enter your instruction here ...",
wgt_name: "Associate images",
reload: "Reload",
slate: "Wood",
pad: "Pad",
none: "None",
slate: "slate",
pad: "pad",
none: "none",
help: "Help",
help_content: "This is an example of help content ...",
theme: "Theme"
......
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
short_desc: "Sélectionner le numéro «trois».",
add: "Nouveau bloc",
......
var sankoreLang = {
display: "Close",
display: "Display",
edit: "Edit",
short_desc: "How many signals do you hear?",
add: "Add new block",
enter: "Enter your instruction here ...",
wgt_name: "Associate to the audio",
reload: "Reload",
slate: "Wood",
pad: "Pad",
none: "None",
slate: "slate",
pad: "pad",
none: "none",
help: "Help",
help_content: "This is an example of help content ...",
theme: "Theme"
......
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
short_desc: "Combien de signaux entendez-vous?",
add: "Nouveau bloc",
enter: "Saisir votre description ici ...",
wgt_name: "Associer aux sons",
reload: "Recharger",
slate: "Bois",
pad: "Pad",
none: "Aucun",
slate: "ardoise",
pad: "tablette",
none: "aucun",
help: "Aide",
help_content: "<p><h2>Associer aux sons</h2></p>"+
"<p><h3>Faire correspondre une image à un son.</h3></p>"+
......@@ -21,14 +21,17 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis </p>"+
"<ul><li>insérez une consigne en cliquant sur le champ de texte “Saisir votre description ici ...”,"+
"<li>insérez un son dans la zone à gauche de la consigne par glisser-déposer d’un son à partir de votre bibliothèque,</li>"+
"<li>ajoutez des zones image en cliquant sur le gros signe + en dessous,</li>"+
"<li>insérez des images par glisser-déposer des images à partir de votre bibliothèque,</li>"+
"<li>définissez l’image correcte de l’interactivité en cliquant sur le bouton valider “v” situé en bas à droite de l’image concernée.</li></ul>"+
"<p>Pour supprimer une zone image, cliquez sur la croix située dans le coin supérieur droit de l’image.</p>"+
"<p>Pour remplacer un son, glissez-déposez simplement un nouveau son.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis </p>"+
"<ul><li>insérez une consigne en cliquant sur le champ de texte “Saisir votre description ici ...”,"+
"<li>insérez un son dans la zone à gauche de la consigne par glisser-déposer d’un son à partir de votre bibliothèque,</li>"+
"<li>ajoutez des zones image(s) en cliquant sur le gros signe + en dessous,</li>"+
"<li>insérez des images par glisser-déposer des images à partir de votre bibliothèque,</li>"+
"<li>définissez l’image correcte de l’interactivité en cliquant sur le bouton valider “v” situé en bas à droite de l’image concernée.</li></ul>"+
"<p>Pour supprimer une zone image, cliquez sur la croix située dans le coin supérieur droit de l’image.</p>"+
"<p>Pour remplacer un son, glissez-déposez simplement un nouveau son.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+
......
var sankoreLang = {
display: "Close",
display: "Display",
edit: "Edit",
first_desc: "Odd numbers",
second_desc: "Even numbers",
......@@ -7,9 +7,9 @@ var sankoreLang = {
add: "Add new block",
wgt_name: "Categorize images",
reload: "Reload",
slate: "Wood",
pad: "Pad",
none: "None",
slate: "slate",
pad: "pad",
none: "none",
help: "Help",
help_content: "This is an example of help content ...",
theme: "Theme"
......
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
first_desc: "Les nombres impairs",
second_desc: "Les nombres pairs",
......
var sankoreLang = {
display: "Close",
display: "Display",
edit: "Edit",
first_desc: "Fruits",
second_desc: "Vegetables",
......@@ -13,9 +13,9 @@ var sankoreLang = {
text: "Some text",
wgt_name: "Categorize text",
reload: "Reload",
slate: "Wood",
pad: "Pad",
none: "None",
slate: "slate",
pad: "pad",
none: "none",
help: "Help",
help_content: "This is an example of help content ...",
theme: "Theme"
......
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
first_desc: "Fruits",
second_desc: "Légumes",
......@@ -28,13 +28,14 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, une zone bleue apparaît, c’est une catégorie, puis.</p>"+
"<ul><li>insérez le nom de la catégorie (par exemple “fruits”, “légumes”, “mammifères”...) en cliquant dans le champ de texte “Saisir le nom de la catégorie ici …”,</li>"+
"<li>cliquez sur le gros “+” situé à gauche de la catégorie ce qui vous permet de rajouter des étiquettes de mots,</li>"+
"<li>entrez des mots dans ces étiquettes,</li>"+
"<li>ajoutez ensuite une catégorie (ou plusieurs) en cliquant sur le signe “+” situé à droite de la catégorie, complétez par son nom et ajoutez des étiquettes de mots.</li></ul>"+
"<p>Pour supprimer une étiquette de mots, cliquez sur la croix située dans le coin supérieur droit de celle-ci.</p>"+
"<p>Pour supprimer une catégorie, cliquez sur le signe “-” situé à droite de celle-ci.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, une zone bleue apparaît, c’est une catégorie, puis :</p>"+
"<ul><li>insérez le nom de la catégorie (par exemple “fruits”, “légumes”, “mammifères”...) en cliquant dans le champ de texte “Saisir le nom de la catégorie ici …”,</li>"+
"<li>cliquez sur le gros “+” situé à gauche de la catégorie ce qui vous permet de rajouter des étiquettes de mots,</li>"+
"<li>entrez des mots dans ces étiquettes,</li>"+
"<li>ajoutez ensuite une catégorie (ou plusieurs) en cliquant sur le signe “+” situé à droite de la catégorie, complétez par son nom et ajoutez des étiquettes de mots.</li></ul>"+
"<p>Pour supprimer une étiquette de mots, cliquez sur la croix située dans le coin supérieur droit de celle-ci.</p>"+
"<p>Pour supprimer une catégorie, cliquez sur le signe “-” situé à droite de celle-ci.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+
......
......@@ -15,7 +15,7 @@
var sankoreLang = {
edit: "Modifier",
display:"Fermer",
display:"Afficher",
question:"La question",
example_question:"Ceci est un exemple de question",
answer:"Ceci est une réponse possible",
......@@ -52,7 +52,7 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Ajouter une nouvelle question …”, puis.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Ajouter une nouvelle question …”, puis :</p>"+
"<ul><li>insérez la question en cliquant sur le champ de texte “Saisir la question ici ...”,</li>"+
"<li>cliquez sur ”Options” pour choisir l’affichage des propositions (une seule bonne réponse, plusieurs bonnes réponses, liste déroulante). Cliquez sur “Fermer”,</li>"+
"<li>cliquez sur ”Ajouter une proposition” et saisissez la proposition dans le champ de texte,</li>"+
......
......@@ -15,7 +15,7 @@
var sankoreLang = {
edit: "Edit",
display:"Close",
display:"Display",
question:"Question",
example_question:"This is an example of the question",
answer:"This is one possible answer",
......@@ -37,9 +37,9 @@ var sankoreLang = {
a:"A",
wgt_name: "Choose the right answer",
reload: "Reload",
slate: "Wood",
pad: "Pad",
none: "None",
slate: "slate",
pad: "pad",
none: "none",
help: "Help",
help_content: "This is an example of help content ...",
theme: "Theme"
......
......@@ -3,7 +3,7 @@ html, body{
height: 100%;
margin: 0;
padding: 0;
border-radius: 50px;
border-radius: 35px;
overflow: hidden;
}
......@@ -41,8 +41,6 @@ body{
height: 100%;
float: left;
background-color: black;
-webkit-border-top-left-radius: 7px;
-webkit-border-bottom-left-radius: 7px;
border-top-left-radius: 7px;
border-bottom-left-radius: 7px;
}
......@@ -52,8 +50,6 @@ body{
height: 100%;
float: right;
background-color: yellow;
-webkit-border-top-right-radius: 7px;
-webkit-border-bottom-right-radius: 7px;
border-top-right-radius: 7px;
border-bottom-right-radius: 7px;
}
......@@ -269,65 +265,55 @@ body{
margin: 10px 10px 0 10px;
padding: 0;
float: left;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload, #wgt_edit, #wgt_display,#wgt_add, #wgt_help{
#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{
cursor: pointer;
height: 44px;
margin: 10px 10px 0 0;
float: right;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
line-height: 32px;
}
#wgt_display{
padding-left: 40px;
background-image: url(../images/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../images/toolbar-edit.png) left -32px no-repeat;
color: white;
display: none;
}
#wgt_edit{
padding-left: 40px;
background-image: url(../images/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../images/slate-toolbar-edit.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload{
padding-left: 40px;
background-image: url(../images/slate-toolbar-reload.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../images/slate-toolbar-reload.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_add{
padding-left: 40px;
background-image: url(../images/plus.png);
background-repeat: no-repeat;
background-position: top 0;
display: none;
margin-left: 10px;
padding-right: 10px;
border: 1px solid #666;
border-radius: 15px;
padding-left: 30px;
background: url(../images/plus.png) -2px -2px no-repeat;
display: inline-block;
}
.style_select{
width: 120px;
/*font-family: "Lobster13Regular";*/
font-size: 24px;
float: right;
margin: 10px 20px 0 0;
border-radius: 10px;
background-image: url(../images/ar_down.png);
background-color: #d4aa79;
color: #8c5730;
background-position: 105px 11px;
background-repeat: no-repeat;
-webkit-appearance: menulist-text;
display: none;
#wgt_add:hover{
border-color: black;
cursor: pointer;
}
.btl_pad{
......@@ -362,55 +348,50 @@ body{
background-image: url(../images/pad-bottom-right.png) !important;
}
.pad_color{
color: white !important;
}
.pad_reload{
background-image: url(../images/slate-toolbar-reload-white.png) !important;
.without_radius{
border-radius: 0 !important;
}
.pad_edit{
background-image: url(../images/slate-display.png) !important;
.without_back{
background: none !important;
}
.pad_add{
background-image: url(../images/plus-white.png) !important;
.pad_color{
color: #FC9 !important;
text-shadow: none !important;
}
.pad_select{
background-color: black !important;
color: white !important;
background-image: url(../images/ar_down_white.png) !important;
.pad_reload{
background: url(../images/toolbar-reload.png) left top no-repeat !important;
}
.without_radius{
border-radius: 0 !important;
.pad_edit{
background: url(../images/toolbar-edit.png) left top no-repeat !important;
}
.without_back{
background: none !important;
.pad_help{
background: url(../images/toolbar-help.png) left top no-repeat !important;
}
.none_select{
background-color: #333 !important;
.help_wood{
background: url(../images/slate-toolbar-help.png) left -32px no-repeat !important;
color: white !important;
background-image: url(../images/ar_down_white.png) !important;
text-shadow: #7F613F 0 -1px 0 !important;
}
.pad_help{
background-image: url(../images/slate-help-white.png) !important;
.help_pad{
background: url(../images/toolbar-help.png) left -32px no-repeat !important;
color: white !important;
}
#wgt_help{
padding-left: 32px;
background-image: url(../images/slate-help.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../images/slate-toolbar-help.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#help{
width: 100%;
height: 100%;
overflow: auto;
display: none;
......@@ -421,3 +402,35 @@ body{
.open{
}
#parameters{
display: none;
margin: 40px 0 0 0;
padding: 10px 20px;
background: url("../images/parameters-bg.png");
border-radius: 4px 4px 0 0;
}
.inline{
display: inline-block;
font-family: "helvetica neue";
font-size: 14px;
color: #666;
}
#parameters label {
font-style: italic;
}
#style_select{
margin-left: 10px;
}
.display_wood{
background: url(../images/slate-toolbar-edit.png) left -32px no-repeat !important;
text-shadow: #7F613F 0 -1px 0;
}
.radius_ft{
border-radius: 45px !important;
}
\ No newline at end of file
......@@ -51,12 +51,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<div id="wgt_add"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -65,6 +59,18 @@
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
<div id="wgt_add"></div>
</div>
</div>
<div id="data">
</div>
......
......@@ -31,12 +31,6 @@ and open the template in the editor.
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<div id="wgt_add"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -45,6 +39,18 @@ and open the template in the editor.
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
<div id="wgt_add"></div>
</div>
</div>
<div id="data">
</div>
......
......@@ -14,7 +14,7 @@
*/
var sankoreLang = {
display: "Afficher",
display: "Fermer",
edit: "Modifier",
add: "Ajouter",
enter_data: "Saisir la donnée:",
......@@ -28,24 +28,25 @@ var sankoreLang = {
none: "aucun",
help: "Aide",
help_content: "<p><h2>Contraste</h2></p>"+
"<p><h3>Jeu de couleurs.</h3></p>"+
"<p><h3>Jeu de couleurs.</h3></p>"+
"<p>Cette activité permet de masquer et d’afficher du texte en jouant sur la couleur de fond (jaune ou noir). Le but est de pouvoir faire apparaître des données en passant d’une couleur à l’autre.</p>"+
"<p>Cette activité permet de masquer et d’afficher du texte en jouant sur la couleur de fond (jaune ou noir). Le but est de pouvoir faire apparaître des données en passant d’une couleur à l’autre.</p>"+
"<p>Le bouton “Recharger” réinitialise les exercices.</p>"+
"<p>Le bouton “Recharger” réinitialise les exercices.</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “+ Ajouter” en haut, puis</p>"+
"<ul><li>saisissez la donnée par exemple “3x15”,</li>"+
"<li>saisissez le résultat, par exemple “15” et cliquez sur “OK”.</li></ul>"+
"<p>Pour modifier les données ou les résultats, cliquez directement sur l’exercice.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix en haut à droite de l’exercice.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “+ Ajouter” en haut, puis</p>"+
"<ul><li>saisissez la donnée par exemple “3x15”,</li>"+
"<li>saisissez le résultat, par exemple “15” et cliquez sur “OK”.</li></ul>"+
"<p>Pour modifier les données ou les résultats, cliquez directement sur l’exercice.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix en haut à droite de l’exercice.</p>"+
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>"
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>",
theme: "Thème"
};
function init(){
......@@ -61,6 +62,8 @@ function init(){
var flagForSelect = false;
var dragElement = null; //the element that must be dragging
var lang = ""; //locale language
var resizeFlag = true;
var coords = {
left:0,
top:0
......@@ -82,9 +85,11 @@ function init(){
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("blackYellowData","")){
......@@ -109,7 +114,7 @@ function init(){
if(window.sankore){
if(sankore.preference("by_style","")){
changeStyle(sankore.preference("by_style",""));
$(".style_select").val(sankore.preference("by_style",""));
$("#style_select").val(sankore.preference("by_style",""));
} else
changeStyle("3")
} else
......@@ -120,9 +125,15 @@ function init(){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
var tmpwh = $(window).height();
var tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh - 44)
$("#data").css("padding-bottom","");
$("#leftDiv").css("border-top-left-radius","7px");
$("#rightDiv").css("border-top-right-radius","7px");
$(this).css("display", "none");
$("#wgt_add").css("display", "none");
$("#wgt_edit").css("display", "block");
mode = false;
$(".leftDiv, .rightDiv").animate({
......@@ -135,7 +146,7 @@ function init(){
tmpReadyTask.width($(domElem).width())
.height($(domElem).height())
.css("position","absolute")
.css("top",$(domElem).position().top)
.css("top",$(domElem).position().top - 40)
.css("left",$(domElem).position().left)
.find(".taskContainer").removeAttr("contenteditable");
......@@ -146,15 +157,22 @@ function init(){
opacityChanged = false;
}
});
$(document).disableTextSelect();
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
tmpwh = $(window).height();
tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh + 44)
$("#data").css("padding-bottom","42px");
$("#leftDiv").css("border-top-left-radius","0px");
$("#rightDiv").css("border-top-right-radius","0px");
$(this).css("display", "none");
$("#wgt_add").css("display", "block");
$("#wgt_display").css("display", "block");
mode = true;
$(document).enableTextSelect();
......@@ -189,12 +207,15 @@ function init(){
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
($("#wgt_edit").hasClass("selected"))?$("#parameters").show():'';
});
} else {
$("#data").hide();
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data, #parameters").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
......@@ -218,10 +239,10 @@ function init(){
$(document).disableTextSelect();
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$(".style_select").change(function (event){
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
......@@ -372,12 +393,12 @@ function init(){
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px");
else
curr.css("top", "60px").css("left", prevLeft + 255 + "px");
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
} else {
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px");
else
curr.css("top", "60px").css("left", prevLeft + 255 + "px");
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
}
prevBottom = curr.position().top + curr.height(),
prevLeft = curr.position().left;
......@@ -390,6 +411,7 @@ function init(){
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
$(window).resize(function(){
if(!resizeFlag){
if($("#wgt_edit").hasClass("selected")){
if($(".editContainer").size() > 1){
var prev = $(".editContainer:first"),
......@@ -406,12 +428,14 @@ function init(){
}
popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%");
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
} else
resizeFlag = false;
});
if (window.widget) {
window.widget.onleave = function(){
exportToSankore();
sankore.setPreference("by_style", $(".style_select").find("option:selected").val());
sankore.setPreference("by_style", $("#style_select").find("option:selected").val());
}
}
......@@ -434,7 +458,7 @@ function init(){
objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text();
objToExport.width = $(domElem).width();
objToExport.height = $(domElem).height();
objToExport.top = $(domElem).position().top;
objToExport.top = $(domElem).position().top - 40;
objToExport.left = $(domElem).position().left;
arrayToExport.push(objToExport);
});
......@@ -493,14 +517,14 @@ function reloadItems(){
//order items
function orderItems(items){
var bottom = 45,
var bottom = ($("#wgt_edit").hasClass("selected"))?85:45,
lastItemLeft = 54;
for (var i in items){
if((bottom + items[i].height()) < ($(window).height() - 54)){
items[i].css("top", bottom + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height() + 15;
} else {
bottom = 60;
bottom = 100;
lastItemLeft += 255;
items[i].css("top", bottom + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height();
......@@ -525,7 +549,7 @@ function shuffle( arr )
//adding a new task to the page
function addTask(expression, result){
var lastItem = $(".editContainer:last"),
lastItemPos = lastItem.length ? lastItem.position().top : 45,
lastItemPos = lastItem.length ? lastItem.position().top : 85,
lastItemHeight = lastItem.length ? lastItem.height() : 0,
lastItemLeft = lastItem.length ? lastItem.position().left : 54;
var bottom = lastItemPos + lastItemHeight + 85;
......@@ -537,7 +561,7 @@ function addTask(expression, result){
if(bottom < ($(window).height() - 54)){
editContent.css("top", lastItemPos + lastItemHeight + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
} else {
lastItemPos = 45;
lastItemPos = 85;
editContent.css("top", lastItemPos + 15 + "px").css("left", lastItemLeft + 255 + "px").appendTo("#data");
}
main.appendTo(editContent);
......@@ -556,13 +580,12 @@ function changeStyle(val){
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_add").removeClass("pad_color").removeClass("pad_add");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -574,13 +597,12 @@ function changeStyle(val){
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_add").addClass("pad_color").addClass("pad_add");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -591,14 +613,13 @@ function changeStyle(val){
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_add").addClass("pad_color").addClass("pad_add");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
if($("#wgt_edit").hasClass("selected"))
......
......@@ -31,12 +31,6 @@ and open the template in the editor.
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<div id="wgt_add"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -45,6 +39,18 @@ and open the template in the editor.
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
<div id="wgt_add"></div>
</div>
</div>
<div id="data">
</div>
......
......@@ -14,7 +14,7 @@
*/
var sankoreLang = {
display: "Показать",
display: "Закрыть",
edit: "Изменить",
add: "Добавить",
enter_data: "Введите вопрос:",
......@@ -27,7 +27,8 @@ var sankoreLang = {
pad: "планшет",
none: "нет",
help: "Помощь",
help_content: "Пример текста помощи ..."
help_content: "Пример текста помощи ...",
theme: "Тема"
};
function init(){
......@@ -43,6 +44,8 @@ function init(){
var flagForSelect = false;
var dragElement = null; //the element that must be dragging
var lang = ""; //locale language
var resizeFlag = true;
var coords = {
left:0,
top:0
......@@ -64,9 +67,11 @@ function init(){
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("blackYellowData","")){
......@@ -91,7 +96,7 @@ function init(){
if(window.sankore){
if(sankore.preference("by_style","")){
changeStyle(sankore.preference("by_style",""));
$(".style_select").val(sankore.preference("by_style",""));
$("#style_select").val(sankore.preference("by_style",""));
} else
changeStyle("3")
} else
......@@ -102,9 +107,15 @@ function init(){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
var tmpwh = $(window).height();
var tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh - 44)
$("#data").css("padding-bottom","");
$("#leftDiv").css("border-top-left-radius","7px");
$("#rightDiv").css("border-top-right-radius","7px");
$(this).css("display", "none");
$("#wgt_add").css("display", "none");
$("#wgt_edit").css("display", "block");
mode = false;
$(".leftDiv, .rightDiv").animate({
......@@ -117,7 +128,7 @@ function init(){
tmpReadyTask.width($(domElem).width())
.height($(domElem).height())
.css("position","absolute")
.css("top",$(domElem).position().top)
.css("top",$(domElem).position().top - 40)
.css("left",$(domElem).position().left)
.find(".taskContainer").removeAttr("contenteditable");
......@@ -128,15 +139,22 @@ function init(){
opacityChanged = false;
}
});
$(document).disableTextSelect();
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
tmpwh = $(window).height();
tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh + 44)
$("#data").css("padding-bottom","42px");
$("#leftDiv").css("border-top-left-radius","0px");
$("#rightDiv").css("border-top-right-radius","0px");
$(this).css("display", "none");
$("#wgt_add").css("display", "block");
$("#wgt_display").css("display", "block");
mode = true;
$(document).enableTextSelect();
......@@ -171,12 +189,15 @@ function init(){
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
($("#wgt_edit").hasClass("selected"))?$("#parameters").show():'';
});
} else {
$("#data").hide();
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data, #parameters").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
......@@ -200,10 +221,10 @@ function init(){
$(document).disableTextSelect();
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$(".style_select").change(function (event){
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
......@@ -354,12 +375,12 @@ function init(){
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px");
else
curr.css("top", "60px").css("left", prevLeft + 255 + "px");
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
} else {
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px");
else
curr.css("top", "60px").css("left", prevLeft + 255 + "px");
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
}
prevBottom = curr.position().top + curr.height(),
prevLeft = curr.position().left;
......@@ -372,6 +393,7 @@ function init(){
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
$(window).resize(function(){
if(!resizeFlag){
if($("#wgt_edit").hasClass("selected")){
if($(".editContainer").size() > 1){
var prev = $(".editContainer:first"),
......@@ -388,12 +410,14 @@ function init(){
}
popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%");
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
} else
resizeFlag = false;
});
if (window.widget) {
window.widget.onleave = function(){
exportToSankore();
sankore.setPreference("by_style", $(".style_select").find("option:selected").val());
sankore.setPreference("by_style", $("#style_select").find("option:selected").val());
}
}
......@@ -416,7 +440,7 @@ function init(){
objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text();
objToExport.width = $(domElem).width();
objToExport.height = $(domElem).height();
objToExport.top = $(domElem).position().top;
objToExport.top = $(domElem).position().top - 40;
objToExport.left = $(domElem).position().left;
arrayToExport.push(objToExport);
});
......@@ -475,14 +499,14 @@ function reloadItems(){
//order items
function orderItems(items){
var bottom = 45,
var bottom = ($("#wgt_edit").hasClass("selected"))?85:45,
lastItemLeft = 54;
for (var i in items){
if((bottom + items[i].height()) < ($(window).height() - 54)){
items[i].css("top", bottom + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height() + 15;
} else {
bottom = 60;
bottom = 100;
lastItemLeft += 255;
items[i].css("top", bottom + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height();
......@@ -507,7 +531,7 @@ function shuffle( arr )
//adding a new task to the page
function addTask(expression, result){
var lastItem = $(".editContainer:last"),
lastItemPos = lastItem.length ? lastItem.position().top : 45,
lastItemPos = lastItem.length ? lastItem.position().top : 85,
lastItemHeight = lastItem.length ? lastItem.height() : 0,
lastItemLeft = lastItem.length ? lastItem.position().left : 54;
var bottom = lastItemPos + lastItemHeight + 85;
......@@ -519,7 +543,7 @@ function addTask(expression, result){
if(bottom < ($(window).height() - 54)){
editContent.css("top", lastItemPos + lastItemHeight + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
} else {
lastItemPos = 45;
lastItemPos = 85;
editContent.css("top", lastItemPos + 15 + "px").css("left", lastItemLeft + 255 + "px").appendTo("#data");
}
main.appendTo(editContent);
......@@ -538,13 +562,12 @@ function changeStyle(val){
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_add").removeClass("pad_color").removeClass("pad_add");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -556,13 +579,12 @@ function changeStyle(val){
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_add").addClass("pad_color").addClass("pad_add");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -573,14 +595,13 @@ function changeStyle(val){
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_add").addClass("pad_color").addClass("pad_add");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
if($("#wgt_edit").hasClass("selected"))
......
......@@ -14,7 +14,7 @@
*/
var sankoreLang = {
display: "Display",
display: "Close",
edit: "Edit",
add: "Add",
enter_data: "Enter data:",
......@@ -23,11 +23,12 @@ var sankoreLang = {
cancel: "Cancel",
wgt_name: "Contrast",
reload: "Reload",
slate: "wood",
slate: "slate",
pad: "pad",
none: "none",
help: "Help",
help_content: "This is an example of help content ..."
help_content: "This is an example of help content ...",
theme: "Theme"
};
function init(){
......@@ -43,6 +44,8 @@ function init(){
var flagForSelect = false;
var dragElement = null; //the element that must be dragging
var lang = ""; //locale language
var resizeFlag = true;
var coords = {
left:0,
top:0
......@@ -64,9 +67,11 @@ function init(){
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("blackYellowData","")){
......@@ -91,7 +96,7 @@ function init(){
if(window.sankore){
if(sankore.preference("by_style","")){
changeStyle(sankore.preference("by_style",""));
$(".style_select").val(sankore.preference("by_style",""));
$("#style_select").val(sankore.preference("by_style",""));
} else
changeStyle("3")
} else
......@@ -102,9 +107,15 @@ function init(){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
var tmpwh = $(window).height();
var tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh - 44)
$("#data").css("padding-bottom","");
$("#leftDiv").css("border-top-left-radius","7px");
$("#rightDiv").css("border-top-right-radius","7px");
$(this).css("display", "none");
$("#wgt_add").css("display", "none");
$("#wgt_edit").css("display", "block");
mode = false;
$(".leftDiv, .rightDiv").animate({
......@@ -117,7 +128,7 @@ function init(){
tmpReadyTask.width($(domElem).width())
.height($(domElem).height())
.css("position","absolute")
.css("top",$(domElem).position().top)
.css("top",$(domElem).position().top - 40)
.css("left",$(domElem).position().left)
.find(".taskContainer").removeAttr("contenteditable");
......@@ -128,15 +139,22 @@ function init(){
opacityChanged = false;
}
});
$(document).disableTextSelect();
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
tmpwh = $(window).height();
tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh + 44)
$("#data").css("padding-bottom","42px");
$("#leftDiv").css("border-top-left-radius","0px");
$("#rightDiv").css("border-top-right-radius","0px");
$(this).css("display", "none");
$("#wgt_add").css("display", "block");
$("#wgt_display").css("display", "block");
mode = true;
$(document).enableTextSelect();
......@@ -171,12 +189,15 @@ function init(){
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
($("#wgt_edit").hasClass("selected"))?$("#parameters").show():'';
});
} else {
$("#data").hide();
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data, #parameters").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
......@@ -200,10 +221,10 @@ function init(){
$(document).disableTextSelect();
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$(".style_select").change(function (event){
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
......@@ -354,12 +375,12 @@ function init(){
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px");
else
curr.css("top", "60px").css("left", prevLeft + 255 + "px");
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
} else {
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px");
else
curr.css("top", "60px").css("left", prevLeft + 255 + "px");
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
}
prevBottom = curr.position().top + curr.height(),
prevLeft = curr.position().left;
......@@ -372,6 +393,7 @@ function init(){
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
$(window).resize(function(){
if(!resizeFlag){
if($("#wgt_edit").hasClass("selected")){
if($(".editContainer").size() > 1){
var prev = $(".editContainer:first"),
......@@ -388,12 +410,14 @@ function init(){
}
popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%");
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
} else
resizeFlag = false;
});
if (window.widget) {
window.widget.onleave = function(){
exportToSankore();
sankore.setPreference("by_style", $(".style_select").find("option:selected").val());
sankore.setPreference("by_style", $("#style_select").find("option:selected").val());
}
}
......@@ -416,7 +440,7 @@ function init(){
objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text();
objToExport.width = $(domElem).width();
objToExport.height = $(domElem).height();
objToExport.top = $(domElem).position().top;
objToExport.top = $(domElem).position().top - 40;
objToExport.left = $(domElem).position().left;
arrayToExport.push(objToExport);
});
......@@ -475,14 +499,14 @@ function reloadItems(){
//order items
function orderItems(items){
var bottom = 45,
var bottom = ($("#wgt_edit").hasClass("selected"))?85:45,
lastItemLeft = 54;
for (var i in items){
if((bottom + items[i].height()) < ($(window).height() - 54)){
items[i].css("top", bottom + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height() + 15;
} else {
bottom = 60;
bottom = 100;
lastItemLeft += 255;
items[i].css("top", bottom + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height();
......@@ -507,7 +531,7 @@ function shuffle( arr )
//adding a new task to the page
function addTask(expression, result){
var lastItem = $(".editContainer:last"),
lastItemPos = lastItem.length ? lastItem.position().top : 45,
lastItemPos = lastItem.length ? lastItem.position().top : 85,
lastItemHeight = lastItem.length ? lastItem.height() : 0,
lastItemLeft = lastItem.length ? lastItem.position().left : 54;
var bottom = lastItemPos + lastItemHeight + 85;
......@@ -519,7 +543,7 @@ function addTask(expression, result){
if(bottom < ($(window).height() - 54)){
editContent.css("top", lastItemPos + lastItemHeight + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
} else {
lastItemPos = 45;
lastItemPos = 85;
editContent.css("top", lastItemPos + 15 + "px").css("left", lastItemLeft + 255 + "px").appendTo("#data");
}
main.appendTo(editContent);
......@@ -538,13 +562,12 @@ function changeStyle(val){
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_add").removeClass("pad_color").removeClass("pad_add");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -556,13 +579,12 @@ function changeStyle(val){
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_add").addClass("pad_color").addClass("pad_add");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -573,14 +595,13 @@ function changeStyle(val){
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_add").addClass("pad_color").addClass("pad_add");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
if($("#wgt_edit").hasClass("selected"))
......
......@@ -8,7 +8,7 @@
<p>Le bouton Modifier vous permet : </p>
<ul>
<li>de choisir le thème de linteractivité : tablette, ardoise ou aucun (par défaut tablette), </li>
<li>de déterminer le nombre de trombone(s) souhaités.</li>
<li>de déterminer le nombre de trombone(s) souhaité(s).</li>
</ul>
<p>Le bouton Afficher vous permet dutiliser lactivité.</p>
\ No newline at end of file
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
text_content: "Ceci est un exemple. Au lieu de ce texte, vous pouvez mettre votre propre texte ou glisser-déposer une image, un son ou une vidéo.",
new_txt: "Nouveau bloc de texte",
......@@ -18,12 +18,14 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier les pages du livret.</li></ul>"+
"<p>Sur chaque page, vous pouvez :</p>"+
"<ul><li>insérer des zones de texte avec le bouton “+T” situé en haut à gauche de l’interactivité. (pour modifier ces zones de texte, cliquez à l’intérieur et écrivez du texte),</li>"+
"<li>insérer des images, sons et vidéos par glisser-déposer de fichiers depuis la bibliothèque jusqu’à l’intérieur de la page du livret,</li>"+
"<li>déplacer les textes, images, sons et vidéos à l’intérieur de la page en cliquant et en déplaçant la flèche multidirectionnelle qui se situe dans le coin supérieur gauche de chaque élément,</li>"+
"<li>agrandir la taille d’un élément avec la double flèche en bas à droite de celui-ci,</li>"+
"<li>supprimer un élément avec la case en haut à droite de celui-ci.</li></ul>"+
"<p>Sur chaque page, vous pouvez :</p>"+
"<ul><li>insérer des zones de texte avec le bouton “+T” situé en haut à gauche de l’interactivité (pour modifier ces zones de texte, cliquez à l’intérieur et écrivez du texte),</li>"+
"<li>insérer des images, sons et vidéos par glisser-déposer de fichiers depuis la bibliothèque jusqu’à l’intérieur de la page du livret,</li>"+
"<li>déplacer les textes, images, sons et vidéos à l’intérieur de la page en cliquant et en déplaçant la flèche multidirectionnelle qui se situe dans le coin supérieur gauche de chaque élément,</li>"+
"<li>agrandir la taille d’un élément avec la double flèche en bas à droite de celui-ci,</li>"+
"<li>supprimer un élément avec la case en haut à droite de celui-ci.</li></ul>"+
"<p>Pour ajouter une page, cliquez sur la flèche verte accompagnée d’un “+” se trouvant en bas à gauche et à droite.</p>"+
"<p>Pour supprimer une page, cliquez sur la croix rouge située en haut à droite de la page.</p>"+
......
......@@ -60,11 +60,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -74,7 +69,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
......@@ -36,11 +36,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -50,7 +45,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
......@@ -26,7 +26,7 @@ function checkResponse()
*/
var sankoreLang = {
view: "Afficher",
view: "Fermer",
edit: "Modifier",
example: "Cette phrase\nest un\nexemple",
wgt_name: "Ordonner des phrases",
......@@ -36,23 +36,23 @@ var sankoreLang = {
none: "aucun",
help: "Aide",
help_content: "<p><h2>Ordonner des phrases</h2></p>"+
"<p><h3>Ordonner des segments de phrases pour reconstituer le texte.</h3></p>"+
"<p><h3>Ordonner des segments de phrases pour reconstituer le texte.</h3></p>"+
"<p>Des étiquettes avec des phrases sont dans le désordre. Le but est de les remettre en ordre pour avoir un texte compréhensible et correct. Lorsque le texte est en ordre, l’interactivité se colore en vert. L’activité s’effectue par un glisser-déposer des étiquettes pour remettre le texte en ordre.</p>"+
"<p>Des étiquettes avec des phrases sont dans le désordre. Le but est de les remettre en ordre pour avoir un texte compréhensible et correct. Lorsque le texte est en ordre, l’interactivité se colore en vert. L’activité s’effectue par un glisser-déposer des étiquettes pour remettre le texte en ordre.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Modifier” vous permet : </p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de déterminer le texte à reconstituer et le nombre de séparations dans l’énoncé.</li></ul>"+
"<p>Le bouton “Modifier” vous permet : </p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de déterminer le texte à reconstituer et le nombre de séparations dans l’énoncé.</li></ul>"+
"<p>Pour insérer du texte dans la zone, cliquez sur la zone et saisissez le texte souhaité.</p>"+
"<p>Pour ajouter des séparations dans l’énoncé, retournez à la ligne. Votre texte sera séparé lors d'un retour à la ligne.</p>"+
"<p>Pour insérer du texte dans la zone, cliquez sur la zone et saisissez le texte souhaité.</p>"+
"<p>Pour ajouter des séparations dans l’énoncé, retournez à la ligne. Votre texte sera séparé lors d'un retour à la ligne.</p>"+
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>"
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>",
theme:"Thème"
};
var sentence = "";
var curSentence = "";
......@@ -82,9 +82,10 @@ var input_width = 606;
var widget_padding = 0;
$(document).ready(function(){
if(window.sankore)
if(sankore.preference("ord_phrases_style","")){
changeStyle(sankore.preference("ord_phrases_style",""));
$(".style_select").val(sankore.preference("ord_phrases_style",""));
$("#style_select").val(sankore.preference("ord_phrases_style",""));
} else
changeStyle("3")
......@@ -92,13 +93,23 @@ $(document).ready(function(){
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
modeView();
......@@ -107,7 +118,7 @@ $(document).ready(function(){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
modeEdit();
......@@ -120,11 +131,13 @@ $(document).ready(function(){
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#ub-widget").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#ub-widget").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -158,13 +171,7 @@ $(document).ready(function(){
}
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$(".style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
})
function str_replace( w, b, s ){
......@@ -230,10 +237,10 @@ function changeStyle(val){
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select option:first").attr('selected',true);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -247,10 +254,10 @@ function changeStyle(val){
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:first").next().attr('selected',true);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -264,10 +271,10 @@ function changeStyle(val){
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:last").attr('selected',true);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......@@ -355,7 +362,7 @@ function modeEdit()
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("ord_phrases_style", $(".style_select").find("option:selected").val());
sankore.setPreference("ord_phrases_style", $("#style_select").find("option:selected").val());
if($( "#mp_word textarea" ).val())
{
modeView();
......
......@@ -36,11 +36,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -50,7 +45,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
......@@ -27,7 +27,7 @@ function checkResponse()
var sankoreLang = {
edit: "Изменить",
view: "Просмотр",
view: "Закрыть",
example: "это\nпример\nпредложения",
wgt_name: "Порядок фраз",
reload: "Обновить",
......@@ -35,10 +35,10 @@ var sankoreLang = {
pad: "Планшет",
none: "Нет",
help: "Помощь",
help_content: "Пример текста помощи ..."
help_content: "Пример текста помощи ...",
theme: "Тема"
}
var sentence = "";
var curSentence = "";
......@@ -68,9 +68,10 @@ var input_width = 606;
var widget_padding = 0;
$(document).ready(function(){
if(window.sankore)
if(sankore.preference("ord_phrases_style","")){
changeStyle(sankore.preference("ord_phrases_style",""));
$(".style_select").val(sankore.preference("ord_phrases_style",""));
$("#style_select").val(sankore.preference("ord_phrases_style",""));
} else
changeStyle("3")
......@@ -78,13 +79,23 @@ $(document).ready(function(){
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
modeView();
......@@ -93,7 +104,7 @@ $(document).ready(function(){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
modeEdit();
......@@ -106,11 +117,13 @@ $(document).ready(function(){
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#ub-widget").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#ub-widget").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -144,13 +157,7 @@ $(document).ready(function(){
}
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$(".style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
})
function str_replace( w, b, s ){
......@@ -216,10 +223,10 @@ function changeStyle(val){
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select option:first").attr('selected',true);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -233,10 +240,10 @@ function changeStyle(val){
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:first").next().attr('selected',true);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -250,10 +257,10 @@ function changeStyle(val){
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:last").attr('selected',true);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......@@ -341,7 +348,7 @@ function modeEdit()
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("ord_phrases_style", $(".style_select").find("option:selected").val());
sankore.setPreference("ord_phrases_style", $("#style_select").find("option:selected").val());
if($( "#mp_word textarea" ).val())
{
modeView();
......
......@@ -28,7 +28,7 @@ function checkResponse()
var sankoreLang = {
edit: "Edit",
view: "Display",
view: "Close",
example: "this is\nan example\nsentence",
wgt_name: "Order phrases",
reload: "Reload",
......@@ -36,7 +36,8 @@ var sankoreLang = {
pad: "Pad",
none: "None",
help: "Help",
help_content: "This is an example of help content ..."
help_content: "This is an example of help content ...",
theme: "Theme"
}
......@@ -72,7 +73,7 @@ $(document).ready(function(){
if(window.sankore)
if(sankore.preference("ord_phrases_style","")){
changeStyle(sankore.preference("ord_phrases_style",""));
$(".style_select").val(sankore.preference("ord_phrases_style",""));
$("#style_select").val(sankore.preference("ord_phrases_style",""));
} else
changeStyle("3")
......@@ -80,13 +81,23 @@ $(document).ready(function(){
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
modeView();
......@@ -95,7 +106,7 @@ $(document).ready(function(){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
modeEdit();
......@@ -108,11 +119,13 @@ $(document).ready(function(){
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#ub-widget").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#ub-widget").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -146,13 +159,7 @@ $(document).ready(function(){
}
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$(".style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
})
function str_replace( w, b, s ){
......@@ -218,10 +225,10 @@ function changeStyle(val){
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select option:first").attr('selected',true);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -235,10 +242,10 @@ function changeStyle(val){
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:first").next().attr('selected',true);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -252,10 +259,10 @@ function changeStyle(val){
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:last").attr('selected',true);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......@@ -343,7 +350,7 @@ function modeEdit()
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("ord_phrases_style", $(".style_select").find("option:selected").val());
sankore.setPreference("ord_phrases_style", $("#style_select").find("option:selected").val());
if($( "#mp_word textarea" ).val())
{
modeView();
......
......@@ -3,7 +3,7 @@ html, body{
height: 100%;
margin: 0;
padding: 0;
border-radius: 50px;
border-radius: 35px;
overflow: hidden;
}
......@@ -149,57 +149,40 @@ textarea{
margin: 10px 10px 0 10px;
padding: 0;
float: left;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{
cursor: pointer;
height: 44px;
margin: 10px 10px 0 0;
float: right;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
line-height: 32px;
}
#wgt_display{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/toolbar-edit.png) left -32px no-repeat;
color: white;
display: none;
}
#wgt_edit{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-edit.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload{
padding-left: 40px;
background-image: url(../img/slate-toolbar-reload.png);
background-repeat: no-repeat;
background-position: top 0;
}
.style_select{
width: 120px;
/*font-family: "Lobster13Regular";*/
font-size: 24px;
float: right;
margin: 10px 20px 0 0;
border-radius: 10px;
background-image: url(../img/ar_down.png);
background-color: #d4aa79;
color: #8c5730;
background-position: 105px 11px;
background-repeat: no-repeat;
-webkit-appearance: menulist-text;
display: none;
padding-left: 35px;
background: url(../img/slate-toolbar-reload.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
.btl_pad{
......@@ -234,51 +217,50 @@ textarea{
background-image: url(../img/pad-bottom-right.png) !important;
}
.pad_color{
color: white !important;
.without_radius{
border-radius: 0 !important;
}
.pad_reload{
background-image: url(../img/slate-toolbar-reload-white.png) !important;
.without_back{
background: none !important;
}
.pad_edit{
background-image: url(../img/slate-display.png) !important;
.pad_color{
color: #FC9 !important;
text-shadow: none !important;
}
.pad_select{
background-color: black !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
.pad_reload{
background: url(../img/toolbar-reload.png) left top no-repeat !important;
}
.without_radius{
border-radius: 0 !important;
.pad_edit{
background: url(../img/toolbar-edit.png) left top no-repeat !important;
}
.without_back{
background: none !important;
.pad_help{
background: url(../img/toolbar-help.png) left top no-repeat !important;
}
.none_select{
background-color: #333 !important;
.help_wood{
background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
text-shadow: #7F613F 0 -1px 0 !important;
}
.pad_help{
background-image: url(../img/slate-help-white.png) !important;
.help_pad{
background: url(../img/toolbar-help.png) left -32px no-repeat !important;
color: white !important;
}
#wgt_help{
padding-left: 32px;
background-image: url(../img/slate-help.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-help.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#help{
width: 100%;
height: 100%;
overflow: auto;
display: none;
......@@ -289,3 +271,34 @@ textarea{
.open{
}
#parameters{
display: none;
padding: 10px 20px;
background: url("../img/parameters-bg.png");
border-radius: 4px 4px 0 0;
}
.inline{
display: inline-block;
font-family: "helvetica neue";
font-size: 14px;
color: #666;
}
#parameters label {
font-style: italic;
}
#style_select{
margin-left: 10px;
}
.display_wood{
background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important;
text-shadow: #7F613F 0 -1px 0;
}
.radius_ft{
border-radius: 45px !important;
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ html, body{
height: 100%;
margin: 0;
padding: 0;
border-radius: 50px;
border-radius: 35px;
overflow: hidden;
}
......@@ -28,14 +28,6 @@ body{
margin: 5px 10px;
}
.green_point{
background-image: url(../img/green_point.png);
}
.red_point{
background-image: url(../img/red_point.png);
}
#display_text, #edit_text{
height: 19px;
padding: 3px 0 0 0;
......@@ -322,57 +314,40 @@ body{
margin: 10px 10px 0 10px;
padding: 0;
float: left;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{
cursor: pointer;
height: 44px;
margin: 10px 10px 0 0;
float: right;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
line-height: 32px;
}
#wgt_display{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/toolbar-edit.png) left -32px no-repeat;
color: white;
display: none;
}
#wgt_edit{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-edit.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload{
padding-left: 40px;
background-image: url(../img/slate-toolbar-reload.png);
background-repeat: no-repeat;
background-position: top 0;
}
.style_select{
width: 120px;
/*font-family: "Lobster13Regular";*/
font-size: 24px;
float: right;
margin: 10px 20px 0 0;
border-radius: 10px;
background-image: url(../img/ar_down.png);
background-color: #d4aa79;
color: #8c5730;
background-position: 105px 11px;
background-repeat: no-repeat;
-webkit-appearance: menulist-text;
display: none;
padding-left: 35px;
background: url(../img/slate-toolbar-reload.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
.btl_pad{
......@@ -407,51 +382,50 @@ body{
background-image: url(../img/pad-bottom-right.png) !important;
}
.pad_color{
color: white !important;
.without_radius{
border-radius: 0 !important;
}
.pad_reload{
background-image: url(../img/slate-toolbar-reload-white.png) !important;
.without_back{
background: none !important;
}
.pad_edit{
background-image: url(../img/slate-display.png) !important;
.pad_color{
color: #FC9 !important;
text-shadow: none !important;
}
.pad_select{
background-color: black !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
.pad_reload{
background: url(../img/toolbar-reload.png) left top no-repeat !important;
}
.without_radius{
border-radius: 0 !important;
.pad_edit{
background: url(../img/toolbar-edit.png) left top no-repeat !important;
}
.without_back{
background: none !important;
.pad_help{
background: url(../img/toolbar-help.png) left top no-repeat !important;
}
.none_select{
background-color: #333 !important;
.help_wood{
background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
text-shadow: #7F613F 0 -1px 0 !important;
}
.pad_help{
background-image: url(../img/slate-help-white.png) !important;
.help_pad{
background: url(../img/toolbar-help.png) left -32px no-repeat !important;
color: white !important;
}
#wgt_help{
padding-left: 32px;
background-image: url(../img/slate-help.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-help.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#help{
width: 100%;
height: 100%;
overflow: auto;
display: none;
......@@ -462,3 +436,34 @@ body{
.open{
}
#parameters{
display: none;
padding: 10px 20px;
background: url("../img/parameters-bg.png");
border-radius: 4px 4px 0 0;
}
.inline{
display: inline-block;
font-family: "helvetica neue";
font-size: 14px;
color: #666;
}
#parameters label {
font-style: italic;
}
#style_select{
margin-left: 10px;
}
.display_wood{
background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important;
text-shadow: #7F613F 0 -1px 0;
}
.radius_ft{
border-radius: 45px !important;
}
\ No newline at end of file
......@@ -52,11 +52,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -66,7 +61,17 @@
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
display: "Display",
display: "Close",
edit: "Edit",
short_desc: "Select animals from the following list:",
add: "Add new block",
......@@ -15,7 +15,8 @@ var sankoreLang = {
pad: "Pad",
none: "None",
help: "Help",
help_content: "This is an example of help content ..."
help_content: "This is an example of help content ...",
theme: "Theme"
};
//main function
......@@ -27,9 +28,11 @@ function start(){
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("selectionner","")){
......@@ -39,7 +42,7 @@ function start(){
showExample();
if(sankore.preference("sel_style","")){
changeStyle(sankore.preference("sel_style",""));
$(".style_select").val(sankore.preference("sel_style",""));
$("#style_select").val(sankore.preference("sel_style",""));
} else
changeStyle("3")
}
......@@ -50,18 +53,20 @@ function start(){
if (window.widget) {
window.widget.onleave = function(){
exportData();
sankore.setPreference("sel_style", $(".style_select").find("option:selected").val());
sankore.setPreference("sel_style", $("#style_select").find("option:selected").val());
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -83,7 +88,7 @@ function start(){
$("#wgt_display").trigger("click");
});
$(".style_select").change(function (event){
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
......@@ -94,7 +99,7 @@ function start(){
sankore.enableDropOnWidget(false);
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
......@@ -122,7 +127,7 @@ function start(){
sankore.enableDropOnWidget(true);
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(".cont").each(function(){
var container = $(this);
......@@ -446,10 +451,10 @@ function changeStyle(val){
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -463,10 +468,10 @@ function changeStyle(val){
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -480,10 +485,10 @@ function changeStyle(val){
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......
......@@ -26,11 +26,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -40,7 +35,17 @@
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
display: "Afficher",
display: "Fermer",
edit: "Modifier",
short_desc: "Sélectionner les animaux dans la liste suivante :",
add: "Nouveau bloc",
......@@ -16,24 +16,25 @@ var sankoreLang = {
none: "aucun",
help: "Aide",
help_content: "<p><h2>Sélectionner</h2></p>"+
"<p><h3>Trouver les éléments correspondants à la consigne.</h3></p>"+
"<p><h3>Trouver les éléments correspondants à la consigne.</h3></p>"+
"<p>Une consigne est écrite précisant le ou les éléments à chercher parmi tous les éléments proposés. Le but est de trouver les éléments correspondants à la consigne. L’activité s’effectue en cochant les cases sous les éléments correspondants. Une fois que tous les éléments corrects sont cochés, la zone se colore en vert.</p>"+
"<p>Une consigne est écrite précisant le ou les éléments à chercher parmi tous les éléments proposés. Le but est de trouver les éléments correspondants à la consigne. L’activité s’effectue en cochant les cases sous les éléments correspondants. Une fois que tous les éléments corrects sont cochés, la zone se colore en vert.</p>"+
"<p>Le bouton “Recharger” réinitialise les exercices.</p>"+
"<p>Le bouton “Recharger” réinitialise les exercices.</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité. </li></ul>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité. </li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis</p>"+
"<ul><li>insérez une consigne en cliquant sur le champ de texte “Saisir votre consigne ici ...”, </li>"+
"<li>ajoutez des zones de texte en cliquant sur le gros “+T” vert en dessous puis entrez le texte voulu.</li></ul>"+
"<p>Pour supprimer une zone de texte, cliquez sur la croix située dans le coin supérieur de celle-ci.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis</p>"+
"<ul><li>insérez une consigne en cliquant sur le champ de texte “Saisir votre consigne ici ...”, </li>"+
"<li>ajoutez des zones de texte en cliquant sur le gros “+T” vert en dessous puis entrez le texte voulu.</li></ul>"+
"<p>Pour supprimer une zone de texte, cliquez sur la croix située dans le coin supérieur de celle-ci.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>"
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>",
theme:"Thème"
};
//main function
......@@ -45,9 +46,11 @@ function start(){
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("selectionner","")){
......@@ -57,7 +60,7 @@ function start(){
showExample();
if(sankore.preference("sel_style","")){
changeStyle(sankore.preference("sel_style",""));
$(".style_select").val(sankore.preference("sel_style",""));
$("#style_select").val(sankore.preference("sel_style",""));
} else
changeStyle("3")
}
......@@ -68,18 +71,20 @@ function start(){
if (window.widget) {
window.widget.onleave = function(){
exportData();
sankore.setPreference("sel_style", $(".style_select").find("option:selected").val());
sankore.setPreference("sel_style", $("#style_select").find("option:selected").val());
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -101,7 +106,7 @@ function start(){
$("#wgt_display").trigger("click");
});
$(".style_select").change(function (event){
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
......@@ -112,7 +117,7 @@ function start(){
sankore.enableDropOnWidget(false);
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
......@@ -140,7 +145,7 @@ function start(){
sankore.enableDropOnWidget(true);
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(".cont").each(function(){
var container = $(this);
......@@ -463,10 +468,10 @@ function changeStyle(val){
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -480,10 +485,10 @@ function changeStyle(val){
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -497,10 +502,10 @@ function changeStyle(val){
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......
......@@ -26,11 +26,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -40,7 +35,17 @@
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
display: "Показать",
display: "Закрыть",
edit: "Изменить",
short_desc: "Выберите животных из следующего списка:",
add: "Новый блок",
......@@ -15,7 +15,8 @@ var sankoreLang = {
pad: "Планшет",
none: "Нет",
help: "Помощь",
help_content: "Пример текста помощи ..."
help_content: "Пример текста помощи ...",
theme: "Тема"
};
//main function
......@@ -27,9 +28,11 @@ function start(){
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("selectionner","")){
......@@ -39,7 +42,7 @@ function start(){
showExample();
if(sankore.preference("sel_style","")){
changeStyle(sankore.preference("sel_style",""));
$(".style_select").val(sankore.preference("sel_style",""));
$("#style_select").val(sankore.preference("sel_style",""));
} else
changeStyle("3")
}
......@@ -50,18 +53,20 @@ function start(){
if (window.widget) {
window.widget.onleave = function(){
exportData();
sankore.setPreference("sel_style", $(".style_select").find("option:selected").val());
sankore.setPreference("sel_style", $("#style_select").find("option:selected").val());
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -83,7 +88,7 @@ function start(){
$("#wgt_display").trigger("click");
});
$(".style_select").change(function (event){
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
......@@ -94,7 +99,7 @@ function start(){
sankore.enableDropOnWidget(false);
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
......@@ -122,7 +127,7 @@ function start(){
sankore.enableDropOnWidget(true);
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(".cont").each(function(){
var container = $(this);
......@@ -445,10 +450,10 @@ function changeStyle(val){
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -462,10 +467,10 @@ function changeStyle(val){
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -479,10 +484,10 @@ function changeStyle(val){
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......
......@@ -58,11 +58,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -72,7 +67,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
......@@ -36,11 +36,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -50,7 +45,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
view: "Afficher",
view: "Fermer",
edit: "Modifier",
example: "Ceci est une série de mots à séparer correctement",
wgt_name: "Séparer une phrase",
......@@ -9,25 +9,26 @@ var sankoreLang = {
none: "aucun",
help: "Aide",
help_content: "<p><h2>Séparer une phrase</h2></p>"+
"<p><h3>Séparer les mots d’une phrase.</h3></p>"+
"<p><h3>Séparer les mots d’une phrase.</h3></p>"+
"<p>Une phrase est écrite sans que les mots ne soient séparés. Le but de cette activité est d’insérer les espaces aux bons endroits. Une fois que les séparations sont placées correctement, la phrase se colore en vert.</p>"+
"<p>Une phrase est écrite sans que les mots ne soient séparés. Le but de cette activité est d’insérer les espaces aux bons endroits. Une fois que les séparations sont placées correctement, la phrase se colore en vert.</p>"+
"<p>Pour ajouter des séparations entre les mots, déplacez le curseur et cliquez entre deux lettres, une séparation s’ajoute alors.</p>"+
"<p>Pour ajouter des séparations entre les mots, déplacez le curseur et cliquez entre deux lettres, une séparation s’ajoute alors.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun), </li>"+
"<li>de déterminer la phrase sur laquelle travailler.</li></ul>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun), </li>"+
"<li>de déterminer la phrase sur laquelle travailler.</li></ul>"+
"<p>Ecrivez simplement une phrase dans la zone de texte.</p>"+
"<p>Ecrivez simplement une phrase dans la zone de texte.</p>"+
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>"
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>",
theme: "Thème"
};
......
......@@ -20,7 +20,6 @@
<script type="text/javascript" src="../../scripts/app.js"></script>
<script type="text/javascript">
$(document).ready(function(){
alert(2)
if(window.sankore)
sankore.enableDropOnWidget(false);
});
......@@ -37,11 +36,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -51,7 +45,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
view: "Показать",
view: "Закрыть",
edit: "Изменить",
example: "это группа слов которую нужно разделить",
wgt_name: "Разделить фразу",
......@@ -8,7 +8,8 @@ var sankoreLang = {
pad: "Планшет",
none: "Нет",
help: "Помощь",
help_content: "Пример текста помощи ..."
help_content: "Пример текста помощи ...",
theme: "Тема"
};
// if use the "view/edit" button or rely on the api instead
......
......@@ -18,6 +18,15 @@ function createElements( phrase )
return s;
}
function createChain( phrase )
{
var arr = phrase.split(" ");
var result = "";
for( var i = 0; i < arr.length; i++ )
result += '<div class="letterCont">' + createElements(arr[i]) + '</div>';
return result;
}
$(document).ready(function()
{
......@@ -31,7 +40,7 @@ $(document).ready(function()
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("spl_phrase_style", $(".style_select").find("option:selected").val());
sankore.setPreference("spl_phrase_style", $("#style_select").find("option:selected").val());
if(w.editMode){
sankore.setPreference("ordSplPhrases", w.elements.container.find( "textarea" ).val());
sankore.setPreference("ordSplPhrasesState", "0");
......@@ -47,7 +56,6 @@ $(document).ready(function()
if(window.sankore && sankore.preference("spl_phrase_style","")){
changeStyle(sankore.preference("spl_phrase_style",""));
$(".style_select").val(sankore.preference("spl_phrase_style",""));
} else
changeStyle("3")
......@@ -55,13 +63,23 @@ $(document).ready(function()
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
w.modeView();
......@@ -70,7 +88,7 @@ $(document).ready(function()
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
w.modeEdit();
......@@ -83,11 +101,13 @@ $(document).ready(function()
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#ub-widget").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#ub-widget").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -104,14 +124,6 @@ $(document).ready(function()
}
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$(".style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
w.maxWidth = 600;
w.setEditContent( '<div class="inputwrap"><textarea class="percent">' + sentence + '</textarea></div>' );
......@@ -132,9 +144,8 @@ $(document).ready(function()
// store the text
w.setData( "phrase", phrase );
// remove all dots (they are to be set during the exercise)
phrase = phrase.replace( / /g, '' );
//phrase = phrase.replace( / /g, '' );
// create the html
if(window.sankore && sankore.preference("ordSplPhrasesState", "") == "1" && flag){
......@@ -144,7 +155,7 @@ $(document).ready(function()
flag = false;
}
else
w.setViewContent( createElements( phrase ) );
w.setViewContent( createChain( phrase ) );
// the behaviour
......@@ -238,7 +249,7 @@ $(document).ready(function()
if( this.className.indexOf( "fixed" ) != -1 ){
phrase += ' ';
}
else if( this.className.indexOf( "dash" ) != -1 ){
else if( (this.className.indexOf( "dash" ) != -1) || (this.className.indexOf( "letterCont" ) != -1) ){
return;
}
else{
......@@ -246,7 +257,6 @@ $(document).ready(function()
phrase += ch;
}
});
//alert(phrase + " | " + this.getData( "phrase" ))
if( phrase == this.getData( "phrase" ) ){
this.elements.containerView.addClass( "answerRight" );
}
......@@ -276,10 +286,10 @@ $(document).ready(function()
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select option:first").attr('selected',true);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -293,10 +303,10 @@ $(document).ready(function()
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:first").next().attr('selected',true);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -310,12 +320,12 @@ $(document).ready(function()
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:last").attr('selected',true);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
}
});
\ No newline at end of file
var sankoreLang = {
view: "Display",
view: "Close",
edit: "Edit",
example: "this is a bunch of words which should be split apart",
wgt_name: "Split a phrase",
......@@ -8,7 +8,8 @@ var sankoreLang = {
pad: "Pad",
none: "None",
help: "Help",
help_content: "This is an example of help content ..."
help_content: "This is an example of help content ...",
theme: "Theme"
};
// if use the "view/edit" button or rely on the api instead
......
......@@ -109,57 +109,40 @@
margin: 10px 10px 0 10px;
padding: 0;
float: left;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{
cursor: pointer;
height: 44px;
margin: 10px 10px 0 0;
float: right;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
line-height: 32px;
}
#wgt_display{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/toolbar-edit.png) left -32px no-repeat;
color: white;
display: none;
}
#wgt_edit{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-edit.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload{
padding-left: 40px;
background-image: url(../img/slate-toolbar-reload.png);
background-repeat: no-repeat;
background-position: top 0;
}
.style_select{
width: 120px;
/*font-family: "Lobster13Regular";*/
font-size: 24px;
float: right;
margin: 10px 20px 0 0;
border-radius: 10px;
background-image: url(../img/ar_down.png);
background-color: #d4aa79;
color: #8c5730;
background-position: 105px 11px;
background-repeat: no-repeat;
-webkit-appearance: menulist-text;
display: none;
padding-left: 35px;
background: url(../img/slate-toolbar-reload.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
.btl_pad{
......@@ -194,51 +177,50 @@
background-image: url(../img/pad-bottom-right.png) !important;
}
.pad_color{
color: white !important;
.without_radius{
border-radius: 0 !important;
}
.pad_reload{
background-image: url(../img/slate-toolbar-reload-white.png) !important;
.without_back{
background: none !important;
}
.pad_edit{
background-image: url(../img/slate-display.png) !important;
.pad_color{
color: #FC9 !important;
text-shadow: none !important;
}
.pad_select{
background-color: black !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
.pad_reload{
background: url(../img/toolbar-reload.png) left top no-repeat !important;
}
.without_radius{
border-radius: 0 !important;
.pad_edit{
background: url(../img/toolbar-edit.png) left top no-repeat !important;
}
.without_back{
background: none !important;
.pad_help{
background: url(../img/toolbar-help.png) left top no-repeat !important;
}
.none_select{
background-color: #333 !important;
.help_wood{
background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
text-shadow: #7F613F 0 -1px 0 !important;
}
.pad_help{
background-image: url(../img/slate-help-white.png) !important;
.help_pad{
background: url(../img/toolbar-help.png) left -32px no-repeat !important;
color: white !important;
}
#wgt_help{
padding-left: 32px;
background-image: url(../img/slate-help.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-help.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#help{
width: 100%;
height: 100%;
overflow: auto;
display: none;
......@@ -249,3 +231,34 @@
.open{
}
#parameters{
display: none;
padding: 10px 20px;
background: url("../img/parameters-bg.png");
border-radius: 4px 4px 0 0;
}
.inline{
display: inline-block;
font-family: "helvetica neue";
font-size: 14px;
color: #666;
}
#parameters label {
font-style: italic;
}
#style_select{
margin-left: 10px;
}
.display_wood{
background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important;
text-shadow: #7F613F 0 -1px 0;
}
.radius_ft{
border-radius: 45px !important;
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ html, body{
height: 100%;
margin: 0;
padding: 0;
border-radius: 50px;
border-radius: 35px;
overflow: hidden;
}
......
......@@ -27,7 +27,6 @@
lang = sankore.locale().substr(0,2);
} else
lang = "en";
if(lang != "en"){
returnStatus(lang);
}
......@@ -61,11 +60,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -75,7 +69,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
......@@ -36,11 +36,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -50,7 +45,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
view: "Afficher",
view: "Fermer",
edit: "Modifier",
example: "bonjour, ceci est la première phrase. salut, c'est la deuxième phrase. bonjour à nouveau, c'est la troisième phrase. bonjour, c'est la quatrième phrase. salut, désolé, je suis en retard, je suis la cinquième phrase.",
wgt_name: "Séparer un texte",
......@@ -10,23 +10,24 @@ var sankoreLang = {
help: "Aide",
help_content: "<p><h3>Séparer les phrases d’un texte.</h3></p>"+
"<p>Un texte est écrit sans que les points entre les phrases n’apparaissent. Le but de cette activité est d’insérer les points aux bons endroits. Une fois que les points sont placés correctement, la phrase se colore en vert.</p>"+
"<p>Un texte est écrit sans que les points entre les phrases n’apparaissent. Le but de cette activité est d’insérer les points aux bons endroits. Une fois que les points sont placés correctement, la phrase se colore en vert.</p>"+
"<p>Pour ajouter les points entre les phrases, déplacez le curseur et cliquez entre deux mots, un point s’ajoute alors.</p>"+
"<p>Pour ajouter les points entre les phrases, déplacez le curseur et cliquez entre deux mots, un point s’ajoute alors.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun), </li>"+
"<li>de déterminer le texte sur lequel travailler.</li></ul>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun), </li>"+
"<li>de déterminer le texte sur lequel travailler.</li></ul>"+
"<p>Ecrivez simplement dans la zone de texte les différentes phrases séparées par des points.<b> NB : Les points d’interrogation, les deux points “:”, les points-virgules “;” et les points d’exclamation ne sont pas pris en compte.</b></p>"+
"<p>Ecrivez simplement dans la zone de texte les différentes phrases séparées par des points.<b> NB : Les points d’interrogation, les deux points “:”, les points-virgules “;” et les points d’exclamation ne sont pas pris en compte.</b></p>"+
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>"
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>",
theme: "Thème"
};
......
......@@ -36,11 +36,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -50,7 +45,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
view: "Показать",
view: "Закрыть",
edit: "Изменить",
example: "привет, это первое предложение. а это второе предложение. и снова привет, это третье предложение. добрый день, это четвертое предложение. привет, извини, но я последнее предложение.",
wgt_name: "Разделить текст",
......@@ -8,7 +8,8 @@ var sankoreLang = {
pad: "Планшет",
none: "Нет",
help: "Помощь",
help_content: "Пример текста помощи ..."
help_content: "Пример текста помощи ...",
theme: "Тема"
};
// if use the "view/edit" button or rely on the api instead
......
......@@ -32,7 +32,7 @@ $(document).ready(function()
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("spl_text_style", $(".style_select").find("option:selected").val());
sankore.setPreference("spl_text_style", $("#style_select").find("option:selected").val());
if(w.editMode){
sankore.setPreference("ordSplText", w.elements.container.find( "textarea" ).val());
sankore.setPreference("ordSplTextState", "0");
......@@ -48,7 +48,7 @@ $(document).ready(function()
if(sankore.preference("spl_text_style","")){
changeStyle(sankore.preference("spl_text_style",""));
$(".style_select").val(sankore.preference("spl_text_style",""));
$("#style_select").val(sankore.preference("spl_text_style",""));
} else
changeStyle("3")
......@@ -56,13 +56,23 @@ $(document).ready(function()
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
w.modeView();
......@@ -71,7 +81,7 @@ $(document).ready(function()
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
w.modeEdit();
......@@ -84,11 +94,13 @@ $(document).ready(function()
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#ub-widget").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#ub-widget").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -105,14 +117,6 @@ $(document).ready(function()
}
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$(".style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
w.maxWidth = 600;
w.setEditContent( '<div class="inputwrap"><textarea class="percent">' + sentences + '</textarea></div>' );
......@@ -279,10 +283,10 @@ $(document).ready(function()
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select option:first").attr('selected',true);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -296,10 +300,10 @@ $(document).ready(function()
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:first").next().attr('selected',true);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -313,10 +317,10 @@ $(document).ready(function()
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:last").attr('selected',true);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......
var sankoreLang = {
view: "Display",
view: "Close",
edit: "Edit",
example: "hello, this is the first sentence. hi, this is the second sentence. hello again, this is the third sentence. good morning, this is the fourth sentence. hi, sorry, i\'m late, i\'m the fifth sentence.",
wgt_name: "Split a text",
......@@ -8,7 +8,8 @@ var sankoreLang = {
pad: "Pad",
none: "None",
help: "Help",
help_content: "This is an example of help content ..."
help_content: "This is an example of help content ...",
theme: "Theme"
};
// if use the "view/edit" button or rely on the api instead
......
......@@ -110,57 +110,40 @@
margin: 10px 10px 0 10px;
padding: 0;
float: left;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{
cursor: pointer;
height: 44px;
margin: 10px 10px 0 0;
float: right;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
line-height: 32px;
}
#wgt_display{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/toolbar-edit.png) left -32px no-repeat;
color: white;
display: none;
}
#wgt_edit{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-edit.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload{
padding-left: 40px;
background-image: url(../img/slate-toolbar-reload.png);
background-repeat: no-repeat;
background-position: top 0;
}
.style_select{
width: 120px;
/*font-family: "Lobster13Regular";*/
font-size: 24px;
float: right;
margin: 10px 20px 0 0;
border-radius: 10px;
background-image: url(../img/ar_down.png);
background-color: #d4aa79;
color: #8c5730;
background-position: 105px 11px;
background-repeat: no-repeat;
-webkit-appearance: menulist-text;
display: none;
padding-left: 35px;
background: url(../img/slate-toolbar-reload.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
.btl_pad{
......@@ -195,51 +178,50 @@
background-image: url(../img/pad-bottom-right.png) !important;
}
.pad_color{
color: white !important;
.without_radius{
border-radius: 0 !important;
}
.pad_reload{
background-image: url(../img/slate-toolbar-reload-white.png) !important;
.without_back{
background: none !important;
}
.pad_edit{
background-image: url(../img/slate-display.png) !important;
.pad_color{
color: #FC9 !important;
text-shadow: none !important;
}
.pad_select{
background-color: black !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
.pad_reload{
background: url(../img/toolbar-reload.png) left top no-repeat !important;
}
.without_radius{
border-radius: 0 !important;
.pad_edit{
background: url(../img/toolbar-edit.png) left top no-repeat !important;
}
.without_back{
background: none !important;
.pad_help{
background: url(../img/toolbar-help.png) left top no-repeat !important;
}
.none_select{
background-color: #333 !important;
.help_wood{
background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
text-shadow: #7F613F 0 -1px 0 !important;
}
.pad_help{
background-image: url(../img/slate-help-white.png) !important;
.help_pad{
background: url(../img/toolbar-help.png) left -32px no-repeat !important;
color: white !important;
}
#wgt_help{
padding-left: 32px;
background-image: url(../img/slate-help.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-help.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#help{
width: 100%;
height: 100%;
overflow: auto;
display: none;
......@@ -250,3 +232,34 @@
.open{
}
#parameters{
display: none;
padding: 10px 20px;
background: url("../img/parameters-bg.png");
border-radius: 4px 4px 0 0;
}
.inline{
display: inline-block;
font-family: "helvetica neue";
font-size: 14px;
color: #666;
}
#parameters label {
font-style: italic;
}
#style_select{
margin-left: 10px;
}
.display_wood{
background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important;
text-shadow: #7F613F 0 -1px 0;
}
.radius_ft{
border-radius: 45px !important;
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ html, body{
height: 100%;
margin: 0;
padding: 0;
border-radius: 50px;
border-radius: 35px;
overflow: hidden;
}
......
......@@ -4,7 +4,7 @@
xmlns:ub="http://uniboard.mnemis.com/widgets"
id="http://www.example.net/widgets/helloworld"
version="1.0"
width="750"
width="770"
height="320"
ub:resizable="true">
......
......@@ -60,11 +60,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -74,7 +69,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
......@@ -37,11 +37,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -51,7 +46,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
view: "Afficher",
view: "Fermer",
edit: "Modifier",
example: "so*phis*ti*qué",
wgt_name: "Syllabe",
......@@ -9,20 +9,21 @@ var sankoreLang = {
none: "aucun",
help: "Aide",
help_content: "<p><h2>Syllabe</h2></p>"+
"<p><h3>Séparer les syllabes d’un mot.</h3></p>"+
"<p><h3>Séparer les syllabes d’un mot.</h3></p>"+
"<p>Un mot est écrit et le but est de découper le mot en syllabes. Une fois que le découpage est correct, le mot se colore en vert.</p>"+
"<p>Pour ajouter une séparation entre deux syllabes, déplacez le curseur et cliquez entre deux lettres, une séparation s’ajoute. </p>"+
"<p>Un mot est écrit et le but est de découper le mot en syllabes. Une fois que le découpage est correct, le mot se colore en vert.</p>"+
"<p>Pour ajouter une séparation entre deux syllabes, déplacez le curseur et cliquez entre deux lettres, une séparation s’ajoute. </p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Recharger” réinitialise l’exercice.</p>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut tablette), </li>"+
"<li>de déterminer le mot sur lequel travailler.</li></ul>"+
"<p>Le bouton “Modifier” vous permet :</p>"+
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut tablette), </li>"+
"<li>de déterminer le mot sur lequel travailler.</li></ul>"+
"<p>Ecrivez simplement dans la zone de texte le mot en insérant entre les syllabes une étoile *.</p>"+
"<p>Ecrivez simplement dans la zone de texte le mot en insérant entre les syllabes une étoile *.</p>"+
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>"
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>",
theme: "Thème"
};
......
......@@ -37,11 +37,6 @@
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
<select class="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
......@@ -51,7 +46,17 @@
<td>
<div id="help"></div>
<div id="ub-widget">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
......
var sankoreLang = {
view: "Показать",
view: "Закрыть",
edit: "Изменить",
example: "слож*ный",
wgt_name: "Разделить слово",
......@@ -8,7 +8,8 @@ var sankoreLang = {
pad: "Планшет",
none: "Нет",
help: "Помощь",
help_content: "Пример текста помощи ..."
help_content: "Пример текста помощи ...",
theme: "Тема"
};
// if use the "view/edit" button or rely on the api instead
......
......@@ -36,7 +36,7 @@ $(document).ready(function()
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("spl_word_style", $(".style_select").find("option:selected").val());
sankore.setPreference("spl_word_style", $("#style_select").find("option:selected").val());
if(w.editMode){
sankore.setPreference("ordSplWords", w.elements.container.find( "input" ).val().trim( ['*'] ));
sankore.setPreference("ordSplWordsState", "0");
......@@ -52,7 +52,7 @@ $(document).ready(function()
if(sankore.preference("spl_word_style","")){
changeStyle(sankore.preference("spl_word_style",""));
$(".style_select").val(sankore.preference("spl_word_style",""));
$("#style_select").val(sankore.preference("spl_word_style",""));
} else
changeStyle("3")
......@@ -60,13 +60,23 @@ $(document).ready(function()
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$(".style_select").css("display","none");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
w.modeView();
......@@ -75,7 +85,7 @@ $(document).ready(function()
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$(".style_select").css("display","block");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
w.modeEdit();
......@@ -88,11 +98,13 @@ $(document).ready(function()
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#ub-widget").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#ub-widget").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
......@@ -109,14 +121,6 @@ $(document).ready(function()
}
});
$(".style_select option[value='1']").text(sankoreLang.slate);
$(".style_select option[value='2']").text(sankoreLang.pad);
$(".style_select option[value='3']").text(sankoreLang.none);
$(".style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
// onViewMode
w.onViewMode = function()
{
......@@ -214,10 +218,10 @@ $(document).ready(function()
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_display").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$(".style_select").removeClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").addClass("display_wood");
$("#style_select option:first").attr('selected',true);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
......@@ -231,10 +235,10 @@ $(document).ready(function()
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("pad_select").removeClass("none_select").val(val);
$("body, html").removeClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:first").next().attr('selected',true);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
......@@ -248,10 +252,10 @@ $(document).ready(function()
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_display").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$(".style_select").addClass("none_select").val(val);
$("body, html").addClass("without_radius");
$("#wgt_display").removeClass("display_wood");
$("#style_select option:last").attr('selected',true);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
......
var sankoreLang = {
view: "Display",
view: "Close",
edit: "Edit",
example: "so*phis*ti*ca*ted",
wgt_name: "Split a word",
......@@ -8,7 +8,8 @@ var sankoreLang = {
pad: "Pad",
none: "None",
help: "Help",
help_content: "This is an example of help content ..."
help_content: "This is an example of help content ...",
theme: "Theme"
};
// if use the "view/edit" button or rely on the api instead
......
......@@ -3,7 +3,7 @@ html, body{
height: 100%;
margin: 0;
padding: 0;
border-radius: 50px;
border-radius: 35px;
overflow: hidden;
}
......
......@@ -111,57 +111,40 @@
margin: 10px 10px 0 10px;
padding: 0;
float: left;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{
cursor: pointer;
height: 44px;
margin: 10px 10px 0 0;
float: right;
/*font-family: "Lobster13Regular";*/
font-family: Arial,Helvetica,sans-serif;
font-size: 24px;
color: #8c5730;
line-height: 32px;
}
#wgt_display{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/toolbar-edit.png) left -32px no-repeat;
color: white;
display: none;
}
#wgt_edit{
padding-left: 40px;
background-image: url(../img/slate-edit.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-edit.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#wgt_reload{
padding-left: 40px;
background-image: url(../img/slate-toolbar-reload.png);
background-repeat: no-repeat;
background-position: top 0;
}
.style_select{
width: 120px;
/*font-family: "Lobster13Regular";*/
font-size: 24px;
float: right;
margin: 10px 20px 0 0;
border-radius: 10px;
background-image: url(../img/ar_down.png);
background-color: #d4aa79;
color: #8c5730;
background-position: 105px 11px;
background-repeat: no-repeat;
-webkit-appearance: menulist-text;
display: none;
padding-left: 35px;
background: url(../img/slate-toolbar-reload.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
.btl_pad{
......@@ -196,52 +179,50 @@
background-image: url(../img/pad-bottom-right.png) !important;
}
.pad_color{
color: white !important;
.without_radius{
border-radius: 0 !important;
}
.pad_reload{
background-image: url(../img/slate-toolbar-reload-white.png) !important;
.without_back{
background: none !important;
}
.pad_edit{
background-image: url(../img/slate-display.png) !important;
.pad_color{
color: #FC9 !important;
text-shadow: none !important;
}
.pad_select{
background-color: black !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
.pad_reload{
background: url(../img/toolbar-reload.png) left top no-repeat !important;
}
.without_radius{
border-radius: 0 !important;
.pad_edit{
background: url(../img/toolbar-edit.png) left top no-repeat !important;
}
.without_back{
background: none !important;
.pad_help{
background: url(../img/toolbar-help.png) left top no-repeat !important;
}
.none_select{
background-color: #333 !important;
.help_wood{
background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important;
color: white !important;
background-image: url(../img/ar_down_white.png) !important;
text-shadow: #7F613F 0 -1px 0 !important;
}
.pad_help{
background-image: url(../img/slate-help-white.png) !important;
.help_pad{
background: url(../img/toolbar-help.png) left -32px no-repeat !important;
color: white !important;
}
#wgt_help{
padding-left: 32px;
background-image: url(../img/slate-help.png);
background-repeat: no-repeat;
background-position: top 0;
padding-left: 35px;
background: url(../img/slate-toolbar-help.png) left top no-repeat;
color: #7F613F;
text-shadow: #FFDCA9 0 1px 0;
}
#help{
width: 100%;
height: 100%;
overflow: auto;
display: none;
......@@ -252,3 +233,34 @@
.open{
}
#parameters{
display: none;
padding: 10px 20px;
background: url("../img/parameters-bg.png");
border-radius: 4px 4px 0 0;
}
.inline{
display: inline-block;
font-family: "helvetica neue";
font-size: 14px;
color: #666;
}
#parameters label {
font-style: italic;
}
#style_select{
margin-left: 10px;
}
.display_wood{
background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important;
text-shadow: #7F613F 0 -1px 0;
}
.radius_ft{
border-radius: 45px !important;
}
\ No newline at end of file
......@@ -16,6 +16,7 @@
#include <QSvgGenerator>
#include <QSvgRenderer>
#include <QPixmap>
#include <QMap>
#include "core/UBPersistenceManager.h"
......@@ -248,6 +249,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgRect(const QDomElement &elem
painter.end();
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
svgItem->setUuid(QUuid(uuid));
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -298,6 +304,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgEllipse(const QDomElement &e
painter.end();
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
svgItem->setUuid(QUuid(uuid));
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -373,6 +384,30 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e
brush.setColor(fillColor);
brush.setStyle(Qt::SolidPattern);
QUuid itemUuid(element.attribute(aId).right(QUuid().toString().length()));
QUuid itemGroupUuid(element.attribute(aId).left(QUuid().toString().length()-1));
if (!itemUuid.isNull() && (itemGroupUuid!=itemUuid)) // reimported from UBZ
{
UBGraphicsPolygonItem *graphicsPolygon = mCurrentScene->polygonToPolygonItem(polygon);
graphicsPolygon->setBrush(brush);
QTransform transform;
QString textTransform = element.attribute(aTransform);
graphicsPolygon->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform, graphicsPolygon);
}
mCurrentScene->addItem(graphicsPolygon);
graphicsPolygon->setUuid(itemUuid);
mRefToUuidMap.insert(element.attribute(aId), itemUuid);
}
else // single CFF
{
QSvgGenerator *generator = createSvgGenerator(width + pen.width(), height + pen.width());
QPainter painter;
......@@ -390,6 +425,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e
QTransform transform;
QString textTransform = element.attribute(aTransform);
QUuid uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
svgItem->setUuid(uuid);
svgItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform, svgItem);
......@@ -403,7 +442,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e
}
delete generator;
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &element)
......@@ -441,6 +480,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
//bounding rect lef top corner coordinates
qreal x1 = polygon.boundingRect().topLeft().x();
qreal y1 = polygon.boundingRect().topLeft().y();
//bounding rect dimensions
qreal width = polygon.boundingRect().width();
qreal height = polygon.boundingRect().height();
......@@ -458,19 +498,54 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
pen.setColor(strokeColor);
pen.setWidth(strokeWidth);
QBrush brush;
brush.setColor(strokeColor);
brush.setStyle(Qt::SolidPattern);
QUuid itemUuid(element.attribute(aId).right(QUuid().toString().length()));
QUuid itemGroupUuid(element.attribute(aId).left(QUuid().toString().length()-1));
if (!itemUuid.isNull() && (itemGroupUuid!=itemUuid)) // reimported from UBZ
{
UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon);
UBGraphicsStroke *stroke = new UBGraphicsStroke();
graphicsPolygon->setStroke(stroke);
graphicsPolygon->setBrush(brush);
QTransform transform;
QString textTransform = element.attribute(aTransform);
graphicsPolygon->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform, graphicsPolygon);
}
mCurrentScene->addItem(graphicsPolygon);
graphicsPolygon->setUuid(itemUuid);
mRefToUuidMap.insert(element.attribute(aId), itemUuid);
}
else // simple CFF
{
QSvgGenerator *generator = createSvgGenerator(width + pen.width(), height + pen.width());
QPainter painter;
painter.begin(generator); //drawing to svg tmp file
painter.translate(pen.widthF()/2 - x1, pen.widthF()/2- y1);
painter.translate(pen.widthF() / 2 - x1, pen.widthF() / 2 - y1);
painter.setBrush(brush);
painter.setPen(pen);
painter.drawPolyline(polygon);
painter.drawPolygon(polygon);
painter.end();
//add resulting svg file to scene
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
svgItem->setUuid(QUuid(uuid));
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -478,7 +553,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
if (!textTransform.isNull()) {
transform = transformFromString(textTransform, svgItem);
}
repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 + transform.m31() - strokeWidth/2, y1 + transform.m32() + strokeWidth/2, transform);
repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 - strokeWidth/2 + transform.m31(), y1 + strokeWidth/2 + transform.m32(), transform);
hashSceneItem(element, svgItem);
if (mGSectionContainer)
......@@ -487,6 +562,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
}
delete generator;
}
return true;
}
......@@ -621,6 +698,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgText(const QDomElement &elem
//add resulting svg file to scene
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
svgItem->setUuid(QUuid(uuid));
svgItem->resetTransform();
repositionSvgItem(svgItem, width, height, x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, svgItem);
......@@ -734,6 +815,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgTextarea(const QDomElement &
UBGraphicsTextItem *svgItem = mCurrentScene->addTextHtml(doc.toHtml());
svgItem->resize(width, height);
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
svgItem->setUuid(QUuid(uuid));
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -783,6 +868,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgImage(const QDomElement &ele
}
UBGraphicsPixmapItem *pixItem = mCurrentScene->addPixmap(pix, NULL);
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
pixItem->setUuid(QUuid(uuid));
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -830,6 +920,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgFlash(const QDomElement &ele
UBGraphicsWidgetItem *flashItem = mCurrentScene->addW3CWidget(QUrl::fromLocalFile(flashUrl));
flashItem->setSourceUrl(urlPath);
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
flashItem->setUuid(QUuid(uuid));
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -867,14 +961,15 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgAudio(const QDomElement &ele
concreteUrl = QUrl::fromLocalFile(audioPath);
}
QUuid uuid = QUuid::createUuid();
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
QString destFile;
bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(
mCurrentScene->document(),
concreteUrl.toLocalFile(),
UBPersistenceManager::audioDirectory,
uuid,
QUuid(uuid),
destFile);
if (!b)
{
......@@ -883,6 +978,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgAudio(const QDomElement &ele
concreteUrl = QUrl::fromLocalFile(destFile);
UBGraphicsMediaItem *audioItem = mCurrentScene->addAudio(concreteUrl, false);
QTransform transform;
QString textTransform = parentOfAudio.attribute(aTransform);
......@@ -920,15 +1016,15 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgVideo(const QDomElement &ele
concreteUrl = QUrl::fromLocalFile(videoPath);
}
QUuid uuid = QUuid::createUuid();
QString uuid = QUuid::createUuid().toString();
mRefToUuidMap.insert(element.attribute(aId), uuid);
QString destFile;
bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(
mCurrentScene->document(),
concreteUrl.toLocalFile(),
UBPersistenceManager::videoDirectory,
uuid,
QUuid(uuid),
destFile);
if (!b)
{
......@@ -937,6 +1033,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgVideo(const QDomElement &ele
concreteUrl = QUrl::fromLocalFile(destFile);
UBGraphicsMediaItem *videoItem = mCurrentScene->addVideo(concreteUrl, false);
QTransform transform;
QString textTransform = element.attribute(aTransform);
......@@ -980,8 +1077,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgElement(const QDomElement &p
{
QString tagName = parent.tagName();
if (parent.namespaceURI() != svgNS) {
qDebug() << "Incorrect namespace, error at content file, line number" << parent.lineNumber();
return false;
qWarning() << "Incorrect namespace, error at content file, line number" << parent.lineNumber();
//return false;
}
if (tagName == tG && !parseGSection(parent)) return false;
......@@ -1027,8 +1124,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPageset(const QDomElement &p
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbMeta(const QDomElement &element)
{
if (element.namespaceURI() != iwbNS) {
qDebug() << "incorrect meta namespace, incorrect document";
return false;
qWarning() << "incorrect meta namespace, incorrect document";
//return false;
}
return true;
......@@ -1036,8 +1133,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbMeta(const QDomElement &elem
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvg(const QDomElement &svgSection)
{
if (svgSection.namespaceURI() != svgNS) {
qDebug() << "incorrect svg namespace, incorrect document";
return false;
qWarning() << "incorrect svg namespace, incorrect document";
// return false;
}
parseSvgSectionAttr(svgSection);
......@@ -1052,15 +1149,92 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvg(const QDomElement &svgSecti
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGroup(QDomElement &parent)
UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGroup(QDomElement &parent)
{
//TODO. Create groups from elements parsed by parseIwbElement() function
if (parent.namespaceURI() != iwbNS) {
qDebug() << "incorrect iwb group namespace, incorrect document";
return false;
qWarning() << "incorrect iwb group namespace, incorrect document";
// return false;
}
return true;
UBGraphicsGroupContainerItem *group = new UBGraphicsGroupContainerItem();
QMultiMap<QString, UBGraphicsPolygonItem *> strokesGroupsContainer;
QList<QGraphicsItem *> groupContainer;
QString currentStrokeIdentifier;
QDomElement currentStrokeElement = parent.firstChildElement();
while (!currentStrokeElement.isNull())
{
if (tGroup == currentStrokeElement.tagName())
group->addToGroup(parseIwbGroup(currentStrokeElement));
else
{
QString ref = currentStrokeElement.attribute(aRef);
QString uuid = mRefToUuidMap[ref];
if (!uuid.isEmpty())
{
if (ref.size() > QUuid().toString().length()) // create stroke group
{
currentStrokeIdentifier = ref.left(QUuid().toString().length()-1);
UBGraphicsPolygonItem *strokeByUuid = qgraphicsitem_cast<UBGraphicsPolygonItem *>(mCurrentScene->itemForUuid(QUuid(ref.right(QUuid().toString().length()))));
if (strokeByUuid)
strokesGroupsContainer.insert(currentStrokeIdentifier, strokeByUuid);
}
else // single elements in group
groupContainer.append(mCurrentScene->itemForUuid(QUuid(uuid)));
}
}
currentStrokeElement = currentStrokeElement.nextSiblingElement();
}
foreach (QString key, strokesGroupsContainer.keys().toSet())
{
UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup();
UBGraphicsStroke *currentStroke = new UBGraphicsStroke();
foreach(UBGraphicsPolygonItem* poly, strokesGroupsContainer.values(key))
{
if (poly)
{
mCurrentScene->removeItem(poly);
mCurrentScene->removeItemFromDeletion(poly);
poly->setStrokesGroup(pStrokesGroup);
poly->setStroke(currentStroke);
pStrokesGroup->addToGroup(poly);
}
}
if (currentStroke->polygons().empty())
delete currentStroke;
if (pStrokesGroup->childItems().count())
mCurrentScene->addItem(pStrokesGroup);
else
delete pStrokesGroup;
if (pStrokesGroup)
{
QGraphicsItem *strokeGroup = qgraphicsitem_cast<QGraphicsItem *>(pStrokesGroup);
groupContainer.append(strokeGroup);
}
}
foreach(QGraphicsItem* item, groupContainer)
group->addToGroup(item);
if (group->childItems().count())
{
mCurrentScene->addItem(group);
if (1 == group->childItems().count())
{
group->destroy(false);
}
}
return group;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::strToBool(QString str)
......@@ -1071,8 +1245,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::strToBool(QString str)
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbElement(QDomElement &element)
{
if (element.namespaceURI() != iwbNS) {
qDebug() << "incorrect iwb element namespace, incorrect document";
return false;
qWarning() << "incorrect iwb element namespace, incorrect document";
// return false;
}
bool locked = false;
......
......@@ -74,6 +74,7 @@ private:
QDomDocument mDOMdoc;
QDomNode mCurrentDOMElement;
QHash<QString, UBGraphicsItem*> persistedItems;
QMap<QString, QString> mRefToUuidMap;
QDir mTmpFlashDir;
void addItemToGSection(QGraphicsItem *item);
......@@ -102,7 +103,7 @@ private:
inline bool parseSvgFlash(const QDomElement &element);
inline bool parseSvgAudio(const QDomElement &element);
inline bool parseSvgVideo(const QDomElement &element);
inline bool parseIwbGroup(QDomElement &parent);
inline UBGraphicsGroupContainerItem *parseIwbGroup(QDomElement &parent);
inline bool parseIwbElement(QDomElement &element);
inline void parseTSpan(const QDomElement &parent, QPainter &painter
, qreal &curX, qreal &curY, qreal &width, qreal &height, qreal &linespacing, QRectF &lastDrawnTextBoundingRect
......
......@@ -70,7 +70,6 @@ QList<UBGraphicsItem*> UBImportPDF::import(const QUuid& uuid, const QString& fil
for(int pdfPageNumber = 1; pdfPageNumber <= pdfPageCount; pdfPageNumber++)
{
UBApplication::showMessage(tr("Importing page %1 of %2").arg(pdfPageNumber).arg(pdfPageCount), true);
result << new UBGraphicsPDFItem(pdfRenderer, pdfPageNumber); // deleted by the scene
}
return result;
......
......@@ -48,6 +48,7 @@
#include "frameworks/UBFileSystemUtils.h"
#include "frameworks/UBStringUtils.h"
#include "frameworks/UBFileSystemUtils.h"
#include "core/UBSettings.h"
#include "core/UBSetting.h"
......@@ -79,6 +80,7 @@ const QString UBSvgSubsetAdaptor::sFormerUniboardDocumentNamespaceUri = "http://
const QString tElement = "element";
const QString tGroup = "group";
const QString tStrokeGroup = "strokeGroup";
const QString tGroups = "groups";
const QString aId = "id";
......@@ -553,6 +555,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
if (polygonItem)
{
mScene->addItem(polygonItem);
polygonItem->setUuid(uuidFromSvg);
if (annotationGroup)
{
polygonItem->setStroke(annotationGroup);
......@@ -822,6 +828,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
UBGraphicsPDFItem* pdfItem = pdfItemFromPDF();
if (pdfItem)
{
QDesktopWidget* desktop = UBApplication::desktop();
qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2;
qreal pdfScale = UBSettings::settings()->pageDpi->get().toReal()/currentDpi;
pdfItem->setScale(pdfScale);
pdfItem->setFlag(QGraphicsItem::ItemIsMovable, true);
pdfItem->setFlag(QGraphicsItem::ItemIsSelectable, true);
......@@ -989,31 +999,45 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup()
{
UBGraphicsGroupContainerItem *result = new UBGraphicsGroupContainerItem();
UBGraphicsGroupContainerItem *group = new UBGraphicsGroupContainerItem();
QMultiMap<QString, UBGraphicsPolygonItem *> strokesGroupsContainer;
QList<QGraphicsItem *> groupContainer;
QString currentStrokeIdentifier;
QUuid groupUuid = QUuid(mXmlReader.attributes().value(aId).toString());
mXmlReader.readNext();
while (!mXmlReader.atEnd()) {
while (!mXmlReader.atEnd())
{
if (mXmlReader.isEndElement()) {
mXmlReader.readNext();
result->setUuid(groupUuid);
if (!result->childItems().count()) {
delete result;
result = 0;
}
break;
} else if (mXmlReader.isStartElement()) {
if (mXmlReader.name() == tGroup) {
} else if (mXmlReader.isStartElement())
{
if (mXmlReader.name() == tGroup)
{
qDebug() << "came across the group id is" << mXmlReader.attributes().value(aId);
UBGraphicsGroupContainerItem *curGroup = readGroup();
if (curGroup) {
result->addToGroup(curGroup);
if (curGroup)
groupContainer.append(curGroup);
}
} else if (mXmlReader.name() == tElement) {
else if (mXmlReader.name() == tElement)
{
QString id = mXmlReader.attributes().value(aId).toString();
QString itemId = id.right(QUuid().toString().size());
QString groupId = id.left(QUuid().toString().size());
QGraphicsItem *curItem = readElementFromGroup();
if (curItem) {
result->addToGroup(curItem);
UBGraphicsPolygonItem *curPolygon = qgraphicsitem_cast<UBGraphicsPolygonItem *>(curItem);
if (curPolygon && !groupId.isEmpty() && !itemId.isEmpty() && itemId != groupId)
{
strokesGroupsContainer.insert(groupId, curPolygon);
}
else // item
{
groupContainer.append(curItem);
}
}else {
mXmlReader.skipCurrentElement();
......@@ -1023,7 +1047,49 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup()
}
}
return result;
foreach (QString key, strokesGroupsContainer.keys().toSet())
{
UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup();
UBGraphicsStroke *currentStroke = new UBGraphicsStroke();
foreach(UBGraphicsPolygonItem* poly, strokesGroupsContainer.values(key))
{
if (poly)
{
mScene->removeItem(poly);
mScene->removeItemFromDeletion(poly);
poly->setStrokesGroup(pStrokesGroup);
poly->setStroke(currentStroke);
pStrokesGroup->addToGroup(poly);
}
}
if (currentStroke->polygons().empty())
delete currentStroke;
if (pStrokesGroup->childItems().count())
mScene->addItem(pStrokesGroup);
else
delete pStrokesGroup;
if (pStrokesGroup)
{
QGraphicsItem *strokeGroup = qgraphicsitem_cast<QGraphicsItem *>(pStrokesGroup);
groupContainer.append(strokeGroup);
}
}
foreach(QGraphicsItem* item, groupContainer)
group->addToGroup(item);
if (group->childItems().count())
{
mScene->addItem(group);
if (1 == group->childItems().count())
{
group->destroy(false);
}
}
return group;
}
void UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroupRoot()
......@@ -1051,8 +1117,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroupRoot()
QGraphicsItem *UBSvgSubsetAdaptor::UBSvgSubsetReader::readElementFromGroup()
{
QGraphicsItem *result = 0;
result = mScene->itemForUuid(QUuid(mXmlReader.attributes().value(aId).toString()));
QString id = mXmlReader.attributes().value(aId).toString();
QString uuid = id.right(QUuid().toString().size());
result = mScene->itemForUuid(QUuid(uuid));
mXmlReader.skipCurrentElement();
mXmlReader.readNext();
......@@ -1152,25 +1219,42 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex)
QGraphicsItem *item = items.takeFirst();
// Is the item a strokes group?
UBGraphicsStrokesGroup* strokesGroupItem = qgraphicsitem_cast<UBGraphicsStrokesGroup*>(item);
if(strokesGroupItem && strokesGroupItem->isVisible()){
mXmlWriter.writeStartElement("g");
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(strokesGroupItem->uuid()));
QMatrix matrix = item->sceneMatrix();
if (!matrix.isIdentity()){
mXmlWriter.writeAttribute("transform", toSvgTransform(matrix));
QDomElement newGroupElement;
if (!strokesGroupItem->parentItem() && strokesGroupItem->childItems().count()) {
newGroupElement = groupDomDocument.createElement(tGroup);
newGroupElement.setAttribute(aId, strokesGroupItem->uuid().toString());
groupRoot.appendChild(newGroupElement);
}
//disabling g section parsing as a group of elements. Use groups refs instead
// mXmlWriter.writeStartElement("g");
// mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(strokesGroupItem->uuid()));
// QMatrix matrix = item->sceneMatrix();
// if (!matrix.isIdentity()){
// mXmlWriter.writeAttribute("transform", toSvgTransform(matrix));
// }
// Add the polygons
foreach(QGraphicsItem* item, strokesGroupItem->childItems()){
UBGraphicsPolygonItem* poly = qgraphicsitem_cast<UBGraphicsPolygonItem*>(item);
if(NULL != poly){
polygonItemToSvgPolygon(poly, true);
if (!newGroupElement.isNull()) {
QDomElement curPolygonElement = groupDomDocument.createElement(tElement);
curPolygonElement.setAttribute(aId, strokesGroupItem->uuid().toString()
+ poly->uuid().toString());
newGroupElement.appendChild(curPolygonElement);
}
items.removeOne(poly);
}
}
mXmlWriter.writeEndElement(); //g
// mXmlWriter.writeEndElement(); //g
}
// Is the item a polygon?
......@@ -1401,12 +1485,12 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex)
QDomElement curElement = groupRoot.firstChildElement();
while (!curElement.isNull()) {
if (curElement.hasAttribute(aId)) {
mXmlWriter.writeStartElement(tGroup);
mXmlWriter.writeStartElement(curElement.tagName());
mXmlWriter.writeAttribute(aId, curElement.attribute(aId));
QDomElement curSubElement = curElement.firstChildElement();
while (!curSubElement.isNull()) {
if (curSubElement.hasAttribute(aId)) {
mXmlWriter.writeStartElement(tElement);
mXmlWriter.writeStartElement(curSubElement.tagName());
mXmlWriter.writeAttribute(aId, curSubElement.attribute(aId));
mXmlWriter.writeEndElement();
curSubElement = curSubElement.nextSiblingElement();
......@@ -1454,8 +1538,16 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro
if (!tmpUuid.isNull()) {
if (item->type() == UBGraphicsGroupContainerItem::Type && item->childItems().count()) {
persistGroupToDom(item, curParent, groupDomDocument);
} else if (item->type() == UBGraphicsStrokesGroup::Type) {
foreach (QGraphicsItem *polygonItem, item->childItems()) {
QDomElement curPolygonElement = groupDomDocument->createElement(tElement);
curPolygonElement.setAttribute(aId, tmpUuid.toString()
+ UBGraphicsItem::getOwnUuid(polygonItem).toString());
curGroupElement.appendChild(curPolygonElement);
}
} else {
QDomElement curSubElement = groupDomDocument->createElement(tGroup);
QDomElement curSubElement = groupDomDocument->createElement(tElement);
curSubElement.setAttribute(aId, tmpUuid);
curGroupElement.appendChild(curSubElement);
}
......@@ -1464,6 +1556,27 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro
}
}
void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistStrokeToDom(QGraphicsItem *strokeItem, QDomElement *curParent, QDomDocument *curDomDocument)
{
QUuid uuid = UBGraphicsScene::getPersonalUuid(strokeItem);
if (!uuid.isNull()) {
QDomElement curStrokesGroupElement = curDomDocument->createElement(tStrokeGroup);
curStrokesGroupElement.setAttribute(aId, uuid);
curParent->appendChild(curStrokesGroupElement);
foreach (QGraphicsItem *item, strokeItem->childItems()) {
QUuid tmpUuid = UBGraphicsScene::getPersonalUuid(item);
if (!tmpUuid.isNull()) {
if (item->type() == UBGraphicsPolygonItem::Type && item->childItems().count()) {
QDomElement curSubElement = curDomDocument->createElement(tElement);
curSubElement.setAttribute(aId, tmpUuid);
curStrokesGroupElement.appendChild(curSubElement);
}
}
}
}
}
void UBSvgSubsetAdaptor::UBSvgSubsetWriter::polygonItemToSvgLine(UBGraphicsPolygonItem* polygonItem, bool groupHoldsInfo)
{
mXmlWriter.writeStartElement("line");
......@@ -1615,6 +1728,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::polygonItemToSvgPolygon(UBGraphicsPo
, "fill-on-light-background", polygonItem->colorOnLightBackground().name());
}
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(polygonItem->uuid()));
if (polygonItem->parentItem()) {
mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "parent", UBStringUtils::toCanonicalUuid(UBGraphicsItem::getOwnUuid(polygonItem->parentItem())));
}
mXmlWriter.writeEndElement();
}
}
......
......@@ -179,6 +179,7 @@ class UBSvgSubsetAdaptor
private:
void persistGroupToDom(QGraphicsItem *groupItem, QDomElement *curParent, QDomDocument *curDomDocument);
void persistStrokeToDom(QGraphicsItem *strokeItem, QDomElement *curParent, QDomDocument *curDomDocument);
void polygonItemToSvgPolygon(UBGraphicsPolygonItem* polygonItem, bool groupHoldsInfo);
void polygonItemToSvgLine(UBGraphicsPolygonItem* polygonItem, bool groupHoldsInfo);
void strokeToSvgPolyline(UBGraphicsStroke* stroke, bool groupHoldsInfo);
......
......@@ -537,7 +537,7 @@ void UBBoardController::duplicateScene()
duplicateScene(mActiveSceneIndex);
}
UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item, bool bAsync)
{
if (!item)
return NULL;
......@@ -568,7 +568,10 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (srcFile.isEmpty())
srcFile = item->sourceUrl().toString();
QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile);
QString contentTypeHeader;
if (!srcFile.isEmpty())
contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile);
if(NULL != qgraphicsitem_cast<UBGraphicsGroupContainerItem*>(commonItem))
itemMimeType = UBMimeType::Group;
else
......@@ -593,9 +596,13 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (mitem)
{
sourceUrl = mitem->mediaFileUrl();
if (bAsync)
{
downloadURL(sourceUrl, srcFile, itemPos, QSize(itemSize.width(), itemSize.height()), false, false);
return NULL; // async operation
}
}
}return NULL; // async operation
}break;
case UBMimeType::VectorImage:
{
......@@ -623,33 +630,30 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
{
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
UBGraphicsGroupContainerItem* duplicatedGroup = NULL;
if(groupItem){
QTransform groupTransform = groupItem->transform();
groupItem->resetTransform();
QList<QGraphicsItem*> duplicatedItems;
QList<QGraphicsItem*> children = groupItem->childItems();
foreach(QGraphicsItem* pIt, children){
UBItem* pItem = dynamic_cast<UBItem*>(pIt);
if(NULL != pItem){
duplicateItem(pItem);
if(pItem){ // we diong sync duplication of all childs.
QGraphicsItem * itemToGroup = dynamic_cast<QGraphicsItem *>(duplicateItem(pItem, false));
if (itemToGroup)
duplicatedItems.append(itemToGroup);
}
}
groupItem->setTransform(groupTransform);
duplicatedGroup = mActiveScene->createGroup(duplicatedItems);
duplicatedGroup->setTransform(groupItem->transform());
groupItem->setSelected(false);
UBApplication::mainWindow->actionGroupItems->trigger();
QList<QGraphicsItem*> selItems = mActiveScene->selectedItems();
if(!selItems.empty()){
// I don't like this solution but for now this is the only way I found.
// Normally, at this state, only the duplicated group should be selected
duplicatedGroup = dynamic_cast<UBGraphicsGroupContainerItem*>(selItems.at(0));
if(NULL != duplicatedGroup){
duplicatedGroup->setTransform(groupTransform);
}
}
}
retItem = dynamic_cast<UBGraphicsItem *>(duplicatedGroup);
break;
QGraphicsItem * itemToAdd = dynamic_cast<QGraphicsItem *>(retItem);
if (itemToAdd)
{
mActiveScene->addItem(itemToAdd);
itemToAdd->setSelected(true);
}
}break;
case UBMimeType::UNKNOWN:
{
......@@ -668,7 +672,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (retItem)
return retItem;
UBItem *createdItem = downloadFinished(true, sourceUrl, sourceUrl, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
UBItem *createdItem = downloadFinished(true, sourceUrl, srcFile, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
if (createdItem)
{
createdItem->setSourceUrl(item->sourceUrl());
......@@ -983,8 +987,8 @@ void UBBoardController::downloadURL(const QUrl& url, QString contentSourceUrl, c
}
else if (sUrl.startsWith("file://") || sUrl.startsWith("/"))
{
QString fileName = url.toLocalFile();
QUrl formedUrl = sUrl.startsWith("file://") ? sUrl : QUrl::fromLocalFile(sUrl);
QUrl formedUrl = sUrl.startsWith("file://") ? url : QUrl::fromLocalFile(sUrl);
QString fileName = formedUrl.toLocalFile();
QString contentType = UBFileSystemUtils::mimeTypeFromFileName(fileName);
bool shouldLoadFileData =
......
......@@ -159,7 +159,7 @@ class UBBoardController : public UBDocumentContainer
void moveSceneToIndex(int source, int target);
void duplicateScene(int index);
UBGraphicsItem *duplicateItem(UBItem *item);
UBGraphicsItem *duplicateItem(UBItem *item, bool bAsync = true);
void deleteScene(int index);
bool cacheIsVisible() {return mCacheWidgetIsEnabled;}
......
......@@ -260,6 +260,7 @@ bool UBFeature::isDeletable() const
|| elementType == FEATURE_AUDIO
|| elementType == FEATURE_VIDEO
|| elementType == FEATURE_IMAGE
|| elementType == FEATURE_FLASH
|| elementType == FEATURE_FOLDER;
}
......@@ -750,7 +751,7 @@ void UBFeaturesController::addDownloadedFile(const QUrl &sourceUrl, const QByteA
file.write(pData);
file.close();
UBFeature downloadedFeature = UBFeature(dest.getFullVirtualPath() + "/" + fileName, getIcon( filePath ),
UBFeature downloadedFeature = UBFeature(dest.getFullVirtualPath() + "/" + fileName, getIcon( filePath, fileTypeFromUrl(filePath)),
fileName, QUrl::fromLocalFile(filePath), FEATURE_ITEM);
if (downloadedFeature != UBFeature()) {
featuresModel->addItem(downloadedFeature);
......
......@@ -170,6 +170,10 @@ UBDocumentProxy* UBDocumentManager::importFile(const QFile& pFile, const QString
foreach(UBGraphicsItem* page, pages)
{
UBApplication::showMessage(tr("Inserting page %1 of %2").arg(++nPage).arg(pages.size()), true);
#ifdef Q_WS_MACX
//Workaround for issue 912
QApplication::processEvents();
#endif
int pageIndex = document->pageCount();
UBGraphicsScene* scene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(document, pageIndex);
importAdaptor->placeImportedItemToScene(scene, page);
......
......@@ -49,6 +49,8 @@ UBGraphicsDelegateFrame::UBGraphicsDelegateFrame(UBGraphicsItemDelegate* pDelega
, mTotalTranslateX(0)
, mTotalTranslateY(0)
, mOperationMode(Scaling)
, mFlippedX(false)
, mFlippedY(false)
, mMirrorX(false)
, mMirrorY(false)
{
......@@ -74,11 +76,9 @@ UBGraphicsDelegateFrame::UBGraphicsDelegateFrame(UBGraphicsItemDelegate* pDelega
mBottomResizeGrip = new QGraphicsRectItem(this);
mBottomResizeGrip->setPen(Qt::NoPen);
mLeftResizeGrip = new QGraphicsRectItem(this);
mLeftResizeGrip->setToolTip("left");
mLeftResizeGrip->setPen(Qt::NoPen);
mRightResizeGrip = new QGraphicsRectItem(this);
mRightResizeGrip->setPen(Qt::NoPen);
mRightResizeGrip->setToolTip("Right");
mTopResizeGrip = new QGraphicsRectItem(this);
mTopResizeGrip->setPen(Qt::NoPen);
......@@ -381,6 +381,12 @@ QSizeF UBGraphicsDelegateFrame::resizeDelegate(qreal moveX, qreal moveY)
return incVector;
}
void UBGraphicsDelegateFrame::scaleByPos(qreal scaleX, qreal scaleY)
{
}
void UBGraphicsDelegateFrame::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if (None == mCurrentTool)
......@@ -453,6 +459,7 @@ void UBGraphicsDelegateFrame::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
scaleX = -2*mFrameWidth/width;
}else{
scaleX = -1;
mFlippedX = !mFlippedX;
}
}
mScaleX = scaleX;
......@@ -482,6 +489,7 @@ void UBGraphicsDelegateFrame::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
scaleY = -2*mFrameWidth/width;
}else{
scaleY = -1;
mFlippedY = !mFlippedY;
}
}
mScaleY = scaleY;
......@@ -545,11 +553,34 @@ void UBGraphicsDelegateFrame::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF ref;
// we just detects coordinates of corner before and after scaling and then moves object at diff between them.
if (resizingBottomRight() && mMirrorX)
if (resizingBottomRight() && (mMirrorX || mMirrorY))
{
if (mFlippedX && !mMirrorX && mFlippedY)// && !mMirrorY)
{
mTranslateX += mInitialTransform.map(delegated()->boundingRect().bottomLeft()).x() - tr.map(delegated()->boundingRect().bottomLeft()).x();
mTranslateY += mInitialTransform.map(delegated()->boundingRect().bottomLeft()).y() - tr.map(delegated()->boundingRect().bottomLeft()).y();
}
else if ((mFlippedX || mMirrorX) && (mFlippedY || mMirrorY))
{
mTranslateX += mInitialTransform.map(delegated()->boundingRect().bottomRight()).x() - tr.map(delegated()->boundingRect().bottomRight()).x();
mTranslateY += mInitialTransform.map(delegated()->boundingRect().bottomRight()).y() - tr.map(delegated()->boundingRect().bottomRight()).y();
}
else if (mFlippedX || mMirrorX)
{
mTranslateX += mInitialTransform.map(delegated()->boundingRect().topRight()).x() - tr.map(delegated()->boundingRect().topRight()).x();
mTranslateY += mInitialTransform.map(delegated()->boundingRect().topRight()).y() - tr.map(delegated()->boundingRect().topRight()).y();
}
else if (mFlippedY || mMirrorY)
{
mTranslateX += mInitialTransform.map(delegated()->boundingRect().bottomLeft()).x() - tr.map(delegated()->boundingRect().bottomLeft()).x();
mTranslateY += mInitialTransform.map(delegated()->boundingRect().bottomLeft()).y() - tr.map(delegated()->boundingRect().bottomLeft()).y();
}
else
{
mTranslateX += mInitialTransform.map(delegated()->boundingRect().bottomRight()).x() - tr.map(delegated()->boundingRect().bottomRight()).x();
mTranslateY += mInitialTransform.map(delegated()->boundingRect().bottomRight()).y() - tr.map(delegated()->boundingRect().bottomRight()).y();
}
}
else
{
mTranslateX += mInitialTransform.map(delegated()->boundingRect().topLeft()).x() - tr.map(delegated()->boundingRect().topLeft()).x();
......
......@@ -40,6 +40,7 @@ class UBGraphicsDelegateFrame: public QGraphicsRectItem, public QObject
QPointF getFixedPointFromPos();
QSizeF getResizeVector(qreal moveX, qreal moveY);
QSizeF resizeDelegate(qreal moveX, qreal moveY);
void scaleByPos(qreal scaleX, qreal scaleY);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
......@@ -124,6 +125,8 @@ class UBGraphicsDelegateFrame: public QGraphicsRectItem, public QObject
OperationMode mOperationMode;
QGraphicsItem* delegated();
bool mFlippedX;
bool mFlippedY;
bool mMirrorX;
bool mMirrorY;
bool mResizing;
......
......@@ -60,6 +60,13 @@ UBGraphicsPolygonItem::UBGraphicsPolygonItem (const QLineF& pLine, qreal pWidth)
void UBGraphicsPolygonItem::initialize()
{
setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::DrawingItem)); //Necessary to set if we want z value to be assigned correctly
setUuid(QUuid::createUuid());
}
void UBGraphicsPolygonItem::setUuid(const QUuid &pUuid)
{
UBItem::setUuid(pUuid);
setData(UBGraphicsItemData::ItemUuid, QVariant(pUuid)); //store item uuid inside the QGraphicsItem to fast operations with Items on the scene
}
void UBGraphicsPolygonItem::clearStroke()
......
......@@ -39,6 +39,8 @@ class UBGraphicsPolygonItem : public QGraphicsPolygonItem, public UBItem
void initialize();
void setUuid(const QUuid &pUuid);
void setStrokesGroup(UBGraphicsStrokesGroup* group);
UBGraphicsStrokesGroup* strokesGroup() const{return mpGroup;}
void setColor(const QColor& color);
......
......@@ -1713,6 +1713,7 @@ QRectF UBGraphicsScene::normalizedSceneRect(qreal ratio)
QGraphicsItem *UBGraphicsScene::itemForUuid(QUuid uuid)
{
QGraphicsItem *result = 0;
QString ui = uuid.toString();
//simple search before implementing container for fast access
foreach (QGraphicsItem *item, items()) {
......
......@@ -302,6 +302,8 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem
static QUuid getPersonalUuid(QGraphicsItem *item);
UBGraphicsPolygonItem* polygonToPolygonItem(const QPolygonF pPolygon);
public slots:
void initStroke();
void hideEraser();
......@@ -338,7 +340,6 @@ public slots:
UBGraphicsPolygonItem* lineToPolygonItem(const QLineF& pLine, const qreal& pWidth);
UBGraphicsPolygonItem* arcToPolygonItem(const QLineF& pStartRadius, qreal pSpanAngle, qreal pWidth);
UBGraphicsPolygonItem* polygonToPolygonItem(const QPolygonF pPolygon);
void initPolygonItem(UBGraphicsPolygonItem*);
......
......@@ -124,8 +124,13 @@ UBItem* UBGraphicsStrokesGroup::deepCopy() const
UBGraphicsPolygonItem *polygon = dynamic_cast<UBGraphicsPolygonItem*>(child);
if (polygon){
QGraphicsItem* pItem = dynamic_cast<QGraphicsItem*>(polygon->deepCopy());
UBGraphicsPolygonItem *polygonCopy = dynamic_cast<UBGraphicsPolygonItem*>(polygon->deepCopy());
if (polygonCopy)
{
QGraphicsItem* pItem = dynamic_cast<QGraphicsItem*>(polygonCopy);
copy->addToGroup(pItem);
polygonCopy->setStrokesGroup(copy);
}
}
}
......
......@@ -113,6 +113,7 @@ void UBGraphicsWidgetItem::initialize()
connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared()));
connect(page(), SIGNAL(geometryChangeRequested(const QRect&)), this, SLOT(geometryChangeRequested(const QRect&)));
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(mainFrameLoadFinished (bool)));
connect(page()->mainFrame(), SIGNAL(initialLayoutCompleted()), this, SLOT(initialLayoutCompleted()));
connect(page(), SIGNAL(linkClicked(const QUrl&)), this, SLOT(onLinkClicked(const QUrl&)));
}
......@@ -121,6 +122,11 @@ void UBGraphicsWidgetItem::onLinkClicked(const QUrl& url)
UBApplication::webController->loadUrl(url);
}
void UBGraphicsWidgetItem::initialLayoutCompleted()
{
mInitialLoadDone = true;
}
QUrl UBGraphicsWidgetItem::mainHtml()
{
return mMainHtmlUrl;
......@@ -564,19 +570,16 @@ void UBGraphicsWidgetItem::injectInlineJavaScript()
void UBGraphicsWidgetItem::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
if (scene() && scene()->renderingContext() != UBGraphicsScene::Screen)
{
if (scene() && scene()->renderingContext() != UBGraphicsScene::Screen) {
painter->drawPixmap(0, 0, snapshot());
}
else
{
if (!mInitialLoadDone || mLoadIsErronous)
{
else {
QGraphicsWebView::paint(painter, option, widget);
}
if (!mInitialLoadDone) {
QString message;
if (mInitialLoadDone && mLoadIsErronous)
message = tr("Cannot load content");
else
message = tr("Loading ...");
painter->setFont(QFont("Arial", 12));
......@@ -594,10 +597,6 @@ void UBGraphicsWidgetItem::paint( QPainter *painter, const QStyleOptionGraphicsI
painter->setPen(Qt::white);
painter->drawText(rect(), Qt::AlignCenter, message);
}
else
QGraphicsWebView::paint(painter, option, widget);
}
}
void UBGraphicsWidgetItem::geometryChangeRequested(const QRect& geom)
......@@ -618,9 +617,9 @@ void UBGraphicsWidgetItem::javaScriptWindowObjectCleared()
void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok)
{
mInitialLoadDone = true;
mLoadIsErronous = !ok;
update(boundingRect());
takeSnapshot();
}
void UBGraphicsWidgetItem::wheelEvent(QGraphicsSceneWheelEvent *event)
......
......@@ -163,6 +163,7 @@ class UBGraphicsWidgetItem : public QGraphicsWebView, public UBItem, public UBRe
private slots:
void onLinkClicked(const QUrl& url);
void initialLayoutCompleted();
private:
bool mIsFrozen;
......
......@@ -359,7 +359,7 @@ QString UBFileSystemUtils::thumbnailPath(const QString& path)
QString UBFileSystemUtils::extension(const QString& fileName)
{
QString extension;
QString extension("");
int lastDotIndex = fileName.lastIndexOf(".");
......@@ -397,6 +397,7 @@ QString UBFileSystemUtils::lastPathComponent(const QString& path)
QString UBFileSystemUtils::mimeTypeFromFileName(const QString& fileName)
{
Q_ASSERT(fileName.length());
QString ext = extension(fileName);
if (ext == "xls" || ext == "xlsx") return "application/msexcel";
......
......@@ -235,7 +235,7 @@ void UBFeaturesWidget::onDisplayMetadata( QMap<QString,QString> metadata )
if (!imageGatherer)
imageGatherer = new UBDownloadHttpFile(0, this);
connect(imageGatherer, SIGNAL(downloadFinished(int, bool, QUrl, QString, QByteArray, QPointF, QSize, bool)), this, SLOT(onPreviewLoaded(int, bool, QUrl, QString, QByteArray, QPointF, QSize, bool)));
connect(imageGatherer, SIGNAL(downloadFinished(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool)), this, SLOT(onPreviewLoaded(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool)));
// We send here the request and store its reply in order to be able to cancel it if needed
imageGatherer->get(QUrl(metadata["Url"]), QPoint(0,0), QSize(), false);
......@@ -262,10 +262,11 @@ void UBFeaturesWidget::onDisplayMetadata( QMap<QString,QString> metadata )
}
void UBFeaturesWidget::onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground)
void UBFeaturesWidget::onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QUrl originalUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground)
{
Q_UNUSED(id);
Q_UNUSED(pSuccess);
Q_UNUSED(originalUrl);
Q_UNUSED(isBackground);
Q_UNUSED(pSize);
Q_UNUSED(pPos);
......@@ -1044,6 +1045,7 @@ void UBFeatureProperties::onAddToLib()
sDownloadFileDesc desc;
desc.isBackground = false;
desc.modal = false;
desc.dest = sDownloadFileDesc::library;
desc.name = QFileInfo( mpElement->getFullPath().toString()).fileName();
qDebug() << desc.name;
desc.srcUrl = mpElement->getFullPath().toString();
......
......@@ -79,7 +79,7 @@ signals:
void sendFileNameList(const QStringList lst);
private slots:
void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QUrl originalUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
void currentSelected( const QModelIndex & );
void searchStarted( const QString & );
void createNewFolder();
......
......@@ -553,7 +553,7 @@ void UBTeacherGuidePresentationWidget::showData( QVector<tUBGEElementNode*> data
else if (element->name == "action") {
QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(mpRootWidgetItem);
newWidgetItem->setText(0, element->attributes.value("task"));
newWidgetItem->setFlags(Qt::ItemIsEnabled /*| Qt::ItemIsSelectable*/);
newWidgetItem->setFlags(Qt::ItemIsEnabled);
QString colorString = element->attributes.value("owner").toInt() == 0 ? "blue" : "green";
UBTGAdaptableText* textWidget = new UBTGAdaptableText(newWidgetItem, 0);
textWidget->bottomMargin(14);
......
......@@ -14,12 +14,14 @@
*/
#include <QFile>
#include <QDesktopWidget>
#include "PDFRenderer.h"
#include "XPDFRenderer.h"
#include "core/memcheck.h"
#include "core/UBApplication.h"
QMap< QUuid, QPointer<PDFRenderer> > PDFRenderer::sRenderers;
......@@ -52,6 +54,10 @@ PDFRenderer* PDFRenderer::rendererForUuid(const QUuid &uuid, const QString &file
sRenderers.insert(newRenderer->fileUuid(), newRenderer);
QDesktopWidget* desktop = UBApplication::desktop();
int dpiCommon = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2;
newRenderer->setDPI(dpiCommon);
return newRenderer;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment