not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

146 lines
4.2 KiB

define(["sugar-web/activity/activity","webL10n","sugar-web/datastore"], function (activity, webL10n, datastore) {
// Manipulate the DOM only when it is ready.
requirejs(['domReady!'], function (doc) {
// Initialize the activity.
activity.setup();
var buttons = ["insertText", "wmd-bold-button-second", "wmd-italic-button-second", "wmd-heading-button", "wmd-hr-button",
"wmd-olist-button", "wmd-ulist-button", "wmd-code-button", "wmd-quote-button", "wmd-link-button",
"wmd-undo-button", "wmd-redo-button", "wmd-showHideEditor-button","wmd-showHidePreview-button"];
inputTextContent = document.getElementById("wmd-input-second");
inputTextContent.value = "#"+l10n_s.get("sample-input");
//to save and resume the contents from datastore.
var datastoreObject = activity.getDatastoreObject();
inputTextContent.onblur = function () {
var jsonData = JSON.stringify((inputTextContent.value).toString());
datastoreObject.setDataAsText(jsonData);
datastoreObject.save(function () {});
};
markdownParsing(); //to load for the first time
datastoreObject.loadAsText(function (error, metadata, data) {
markdowntext = JSON.parse(data);
inputTextContent.value = markdowntext;
markdownParsing(); //to load again when there is a datastore entry
});
for (i = 0; i < buttons.length; i++) {
document.getElementById(buttons[i]).title = l10n_s.get(buttons[i]);
}
var journal = document.getElementById("insertText");
journal.onclick = function () {
activity.showObjectChooser(function (error, result) {
//result1 = result.toString();
var datastoreObject2 = new datastore.DatastoreObject(result);
datastoreObject2.loadAsText(function (error, metadata, data) {
try {
textdata = JSON.parse(data);
} catch (e) {
textdata = data;
}
var inputTextContent = document.getElementById("wmd-input-second");
//inputTextContent.value += textdata;
insertAtCursor(inputTextContent, textdata);
});
});
};
var showHideEditor = document.getElementById("wmd-showHideEditor-button");
var showHidePreview = document.getElementById("wmd-showHidePreview-button");
var panel = document.getElementById("wmd-panel");
var preview = document.getElementById("wmd-preview-second");
var textArea = document.getElementById("wmd-input-second");
function isElementHidden (element) {
return window.getComputedStyle(element, null).getPropertyValue('display') === 'none';
}
showHideEditor.onclick = function(){
if(isElementHidden(preview))
{
preview.style.display = "inline";
preview.style.width = "97%";
panel.style.width = "1%";
}
if(isElementHidden(panel))
{
panel.style.display = "inline";
panel.style.width = "47%";
preview.style.width = "47%";
}
else{
panel.style.display = "none";
panel.style.width = "1%";
preview.style.width = "97%";
}
}
showHidePreview.onclick = function(){
if(isElementHidden(panel))
{
panel.style.display = "inline";
panel.style.width = "97%";
preview.style.width = "1%";
}
if(isElementHidden(preview))
{
preview.style.display = "inline";
preview.style.width = "47%";
panel.style.width = "47%";
}
else{
preview.style.display = "none";
preview.style.width = "1%";
panel.style.width = "94%";
}
}
function insertAtCursor(myField, myValue) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA and others
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
} else {
myField.value += myValue;
}
//markdownParsing();
}
function markdownParsing() {
var converter2 = new Markdown.Converter();
var help = function () {
alert(l10n_s.get("need-help"));
}
var options = {
helpButton: {
handler: help
},
strings: {
quoteexample: l10n_s.get("put-it-right-here")
}
};
var editor2 = new Markdown.Editor(converter2, "-second", options);
editor2.run();
}
});
});