|
|
- // Settings dialog
-
- enyo.kind({
- name: "Sugar.DialogSettings",
- kind: "enyo.Popup",
- classes: "settings-dialog",
- centered: false,
- modal: true,
- floating: true,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "settingssearch", kind: "Sugar.SearchField", onTextChanged: "filterSettings", classes: "settings-filter-text"},
- {name: "donebutton", kind: "Button", classes: "toolbutton settings-close-button", title:"List", ontap: "closeSettings"}
- ]},
- {name: "scroller", kind: "Scroller", horizontal: "hidden", vertical: "auto", classes: "settings-scroller", components: [
- {name: "content", components: [
- {name: "me", kind: "Sugar.DialogSettingsItem", ontap: "meClicked", text: "Me", icon: {directory: "icons", icon: "module-about_me.svg"}, colorized: true},
- {name: "computer", kind: "Sugar.DialogSettingsItem", ontap: "computerClicked", text: "Computer", icon: {directory: "icons", icon: "module-about_my_computer.svg"}},
- {name: "aboutserver", kind: "Sugar.DialogSettingsItem", ontap: "serverClicked", text: "Server", icon: {directory: "icons", icon: "cloud-settings.svg"}},
- {name: "security", kind: "Sugar.DialogSettingsItem", ontap: "securityClicked", icon: {directory: "icons", icon: "login-icon.svg"}, showing: false},
- {name: "privacy", kind: "Sugar.DialogSettingsItem", ontap: "privacyClicked", icon: {directory: "icons", icon: "privacy.svg"}, showing: false},
- {name: "language", kind: "Sugar.DialogSettingsItem", ontap: "languageClicked", text: "Language", icon: {directory: "icons", icon: "module-language.svg"}},
- {name: "androidSettings", kind: "Sugar.DialogSettingsItem", ontap: "androidSettingsClicked", text: "AndroidSettings", icon: {directory: "icons", icon: "android-preferences.svg"}, showing: false},
- {name: "resetLauncher", kind: "Sugar.DialogSettingsItem", ontap: "resetLauncherPopup", text: "ResetLauncher", icon: {directory: "icons", icon: "launcher-icon.svg"}, showing: false}
- ]},
- ]},
- {name: "subdialog"}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.settingssearch.setPlaceholder(l10n.get("SearchSettings"));
- this.$.me.setText(l10n.get("AboutMe"));
- this.$.computer.setText(l10n.get("AboutMyComputer"));
- this.$.security.setText(l10n.get("MySecurity"));
- this.$.privacy.setText(l10n.get("MyPrivacy"));
- this.$.language.setText(l10n.get("Language"));
- this.$.aboutserver.setText(l10n.get("Server"));
- if (util.getClientType() == constant.webAppType || preferences.isConnected()) {
- this.$.security.setShowing(true);
- this.$.privacy.setShowing(true);
- }
- if (window.sugarizerOS) {
- sugarizerOS.getLauncherPackageName(function(value) {sugarizerOS.launcherPackageName = value;});
- this.$.androidSettings.setText(l10n.get("AndroidSettings"));
- this.$.androidSettings.show();
- this.$.resetLauncher.show();
- this.$.resetLauncher.setText(l10n.get("ResetLauncher"));
- }
- if (l10n.language.direction == "rtl") {
- this.$.me.addClass("rtl-10");
- this.$.computer.addClass("rtl-10");
- this.$.security.addClass("rtl-10");
- this.$.privacy.addClass("rtl-10");
- this.$.language.addClass("rtl-10");
- this.$.aboutserver.addClass("rtl-10");
- }
- if (util.getClientType() == constant.webAppType) {
- this.$.security.setShowing(true);
- }
- this.subdialog = null;
- },
-
- rendered: function() {
- this.inherited(arguments);
- app.noresize = true; // HACK: Forbid home resizing when popup is displayed to avoid modal issue
- this.$.me.render();
- this.$.donebutton.setNodeProperty("title", l10n.get("Done"));
- var margin = this.centerDialog(this);
- this.$.content.applyStyle("height", (margin.height)+"px");
- this.$.scroller.render();
- },
-
- centerDialog: function(dialog) {
- var margin = util.computeMargin({width: 800, height: 500}, {width: 0.95, height: 0.95});
- dialog.applyStyle("margin-left", margin.left+"px");
- dialog.applyStyle("margin-top", (margin.top-55)+"px");
- return margin;
- },
-
- // Events
- filterSettings: function() {
- var filter = this.$.settingssearch.getText().toLowerCase();
- stats.trace('my_settings', 'search', 'q='+filter, null);
- enyo.forEach(this.$.content.getControls(), function(item) {
- item.setDisabled(item.getText().toLowerCase().indexOf(filter) == -1 && filter.length != 0);
- });
- },
-
- closeSettings: function() {
- this.hide();
- app.noresize = false;
- },
-
- // Display me dialog
- meClicked: function() {
- if (!this.$.me.getDisabled()) {
- stats.trace('my_settings', 'click', 'about_me', null);
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind: "Sugar.DialogAboutme"}, {owner:this});
- this.subdialog.show();
- }
- },
-
- computerClicked: function() {
- if (!this.$.computer.getDisabled()) {
- stats.trace('my_settings', 'click', 'about_my_computer', null);
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind: "Sugar.DialogComputer"}, {owner:this});
- this.subdialog.show();
- }
- },
-
- securityClicked: function() {
- if (!this.$.security.getDisabled()) {
- stats.trace('my_settings', 'click', 'security', null);
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind: "Sugar.DialogSecurity"}, {owner:this});
- this.subdialog.show();
- }
- },
-
- privacyClicked: function() {
- if (!this.$.security.getDisabled()) {
- stats.trace('my_settings', 'click', 'privacy', null);
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind: "Sugar.DialogPrivacy"}, {owner:this});
- this.subdialog.show();
- }
- },
-
- languageClicked: function() {
- if (!this.$.language.getDisabled()) {
- stats.trace('my_settings', 'click', 'language', null);
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind: "Sugar.DialogLanguage"}, {owner:this});
- this.subdialog.show();
- }
- },
-
- serverClicked: function() {
- if (!this.$.aboutserver.getDisabled()) {
- stats.trace('my_settings', 'click', 'about_my_server', null);
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind: "Sugar.DialogServer"}, {owner:this});
- this.subdialog.show();
- }
- },
-
- androidSettingsClicked: function() {
- if (window.sugarizerOS){
- sugarizerOS.runSettings();
- }
- this.hide();
- },
-
- resetLauncherPopup: function(){
- this.hide();
- this.subdialog = this.$.subdialog.createComponent({kind:"Sugar.DialogSetLauncher"}, {owner:this});
- this.subdialog.show();
- }
- });
-
- // Set Launcher dialog
- enyo.kind({
- name: "Sugar.DialogSetLauncher",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", colorized: true, size: constant.sizeToolbar, icon: {directory: "icons", icon: "owner-icon.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "restart"},
- {name: "content", components: [
- {name: "message", content: "xxx", classes: "launcher-message" },
- {classes: "launcher-icons", components: [
- {name: "nativeIcon", kind: "Sugar.Icon", classes: "setlauncher-icon native", icon: {directory: "icons", icon: "launcher-icon.svg"}, size: 100, ontap:"changeLauncher"},
- {name: "sugarIcon", kind: "Sugar.Icon", classes: "setlauncher-icon sugar", icon: {directory: "icons", icon: "sugarizer.svg"}, size: 100, ontap:"changeLauncher"}
- ]},
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("SetLauncherTitle"));
- this.$.message.setContent(l10n.get("SetLauncherText", {launcher:sugarizerOS.launcherPackageName}));
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- }
- if (window.sugarizerOS) {
- if (sugarizerOS.launcherPackageName == sugarizerOS.packageName) {
- this.$.sugarIcon.addClass("selected");
- }
- else {
- this.$.nativeIcon.addClass("selected");
- }
- }
- },
- rendered: function() {
- this.inherited(arguments);
- this.$.icon.render();
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.owner.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- },
-
- restart: function() {
- sugarizerOS.chooseLauncher();
- this.hide();
- },
-
- changeLauncher: function() {
- this.$.warningbox.setShowing(true);
- }
- });
-
- // Enter Wireless key dialog
- enyo.kind({
- name: "Sugar.DialogNetworkKey",
- kind: "enyo.Popup",
- classes: "module-dialog-wifikey",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", colorized: true, size: constant.sizeToolbar, icon: {directory: "icons", icon: "owner-icon.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "content", components: [
- {classes: "enterkey", components: [
- {name: "keyInput", kind: "Input", classes: "enterkey-input", oninput:"keychanged"}
- ]}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("EnterKey") + " [" + sugarizerOS.NetworkBuffer.SSID + "]");
- if (sugarizerOS.sharedKeyBuffer) {
- this.$.keyInput.setValue(sugarizerOS.sharedKeyBuffer);
- } else {
- this.$.keyInput.setValue("");
- }
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- }
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.icon.render();
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- },
-
- ok: function() {
- sugarizerOS.sharedKeyBuffer = this.$.keyInput.getValue();
- sugarizerOS.setKey(sugarizerOS.NetworkBuffer.SSID, sugarizerOS.sharedKeyBuffer, true);
- this.hide();
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- },
-
- keychanged: function() {
- },
-
- connect: function() {
- },
-
- centerDialog: function(dialog) {
- var margin = util.computeMargin({width: 500, height: 150}, {width: 0.95, height: 0.25});
- dialog.applyStyle("margin-left", margin.left+"px");
- dialog.applyStyle("margin-top", (margin.top-55-40)+"px");
- }
- });
-
- // About me dialog
- enyo.kind({
- name: "Sugar.DialogAboutme",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", colorized: true, size: constant.sizeToolbar, icon: {directory: "icons", icon: "owner-icon.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "restart"},
- {name: "content", components: [
- {name: "message", content: "xxx", classes: "aboutme-message"},
- {classes: "aboutme-icons", components: [
- {name: "psicon", kind: "Sugar.Icon", x: 0, y: 6, classes: "aboutme-icon aboutme-psicon", size: constant.sizeOwner, icon: {directory: "icons", icon: "owner-icon.svg"}, ontap:"setcolor"},
- {name: "nsicon", kind: "Sugar.Icon", x: -12, y: 6, classes: "aboutme-icon aboutme-nsicon", size: constant.sizeOwner, icon: {directory: "icons", icon: "owner-icon.svg"}, ontap:"setcolor"},
- {name: "cicon", kind: "Sugar.Icon", x: 6, y: 6, classes: "aboutme-icon aboutme-cicon", size: constant.sizeOwner, icon: {directory: "icons", icon: "owner-icon.svg"}, ontap:"setcolor"},
- {name: "pficon", kind: "Sugar.Icon", x: 0, y: 6, classes: "aboutme-icon aboutme-pficon", size: constant.sizeOwner, icon: {directory: "icons", icon: "owner-icon.svg"}, ontap:"setcolor"},
- {name: "nficon", kind: "Sugar.Icon", x: -12, y: 6, classes: "aboutme-icon aboutme-nficon", size: constant.sizeOwner, icon: {directory: "icons", icon: "owner-icon.svg"}, ontap:"setcolor"}
- ]},
- {classes: "aboutme-input", components: [
- {name: "name", kind: "Input", classes: "aboutme-name", oninput:"namechanged"}
- ]},
- {name: "restartmessage", content: "xxx", classes: "aboutme-restart", showing: false}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("AboutMe"));
- this.$.message.setContent(l10n.get("ClickToChangeColor"));
- this.$.restartmessage.setContent(l10n.get("ChangesRequireRestart"));
- this.initcolor = this.currentcolor = preferences.getColor();
- this.initname = this.currentname = preferences.getName();
- this.$.name.setValue(this.initname);
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- this.$.name.addClass("rtl-10");
- this.$.message.addClass("rtl-10");
- this.$.restartmessage.addClass("rtl-10");
- }
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.icon.render();
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- var xosize = (util.getCanvasCenter().dx < 515 ? constant.sizeOwner/2 : constant.sizeOwner);
- this.$.pficon.setSize(xosize);
- this.$.pficon.setColorizedColor(util.getPreviousFillColor(this.currentcolor));
- this.$.pficon.setColorized(true);
- this.$.psicon.setSize(xosize);
- this.$.psicon.setColorizedColor(util.getPreviousStrokeColor(this.currentcolor));
- this.$.psicon.setColorized(true);
- this.$.cicon.setSize(xosize);
- this.$.cicon.setColorizedColor(this.currentcolor);
- this.$.cicon.setColorized(true);
- this.$.nficon.setSize(xosize);
- this.$.nficon.setColorizedColor(util.getNextFillColor(this.currentcolor));
- this.$.nficon.setColorized(true);
- this.$.nsicon.setSize(xosize);
- this.$.nsicon.setColorizedColor(util.getNextStrokeColor(this.currentcolor));
- this.$.nsicon.setColorized(true);
- this.$.name.setValue(this.currentname);
- this.owner.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- this.owner.show();
- },
-
- ok: function() {
- if (this.currentcolor.stroke == "#00B20D" && this.currentcolor.fill == "#00EA11" && (this.currentname == "one laptop per child" || this.currentname == "OLPC France")) {
- new Sugar.EE({mode:(this.currentname.indexOf("Fr")==-1?1:2)}).renderInto(document.getElementById("body"));
- return;
- }
- if (this.currentcolor == this.initcolor && this.currentname == this.initname) {
- this.hide();
- this.owner.show();
- return;
- }
- this.$.warningbox.setShowing(true);
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- this.$.name.addRemoveClass('aboutme-name-validate', true);
- },
-
- setcolor: function(icon) {
- var newcolor = icon.getColorizedColor();
- if (newcolor == this.currentcolor) {
- return;
- }
- this.currentcolor = newcolor;
- this.render();
- this.$.restartmessage.setShowing(true);
- },
-
- namechanged: function() {
- this.$.restartmessage.setShowing(true);
- this.currentname = this.$.name.getValue().trim();
- },
-
- restart: function() {
- stats.trace('my_settings_about_me', 'change', 'name_color', null);
- preferences.setName(this.currentname);
- preferences.setColor(util.getColorIndex(this.currentcolor));
- preferences.save();
- var that = this;
- preferences.saveToServer(myserver, function() {
- util.restartApp();
- }, function(error, code) {
- that.$.warningbox.setShowing(false);
- that.$.okbutton.setDisabled(false);
- that.$.cancelbutton.setDisabled(false);
- that.currentname = preferences.getName();
- if (code == 22) {
- that.$.restartmessage.setContent(l10n.get("UserAlreadyExist"));
- } else {
- that.$.restartmessage.setContent(l10n.get("ServerError", {code: code}));
- }
- });
- }
- });
-
-
-
- // Language dialog
- enyo.kind({
- name: "Sugar.DialogSecurity",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", size: constant.sizeToolbar, icon: {directory: "icons", icon: "login-icon.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "content", components: [
- {name: "message", content: "xxx", classes: "security-message"},
- {name: "password", kind: "Sugar.Password", classes: "security-password", onEnter: "next"},
- {name: "next", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "go-right.svg"}, classes: "security-rightbutton", ontap: "next"},
- {name: "spinner", kind: "Image", src: "images/spinner-light.gif", classes: "security-spinner", showing: false},
- {name: "warningmessage", content: "xxx", classes: "security-warning", showing: false}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("MySecurity"));
- this.$.message.setContent(l10n.get("SecurityMessage"));
- this.$.next.setText(l10n.get("Next"));
- this.$.password.startInputListening();
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- this.$.message.addClass("rtl-10");
- }
- this.step = 0;
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.owner.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.$.password.stopInputListening();
- this.hide();
- this.owner.show();
- },
-
- ok: function() {
- this.$.password.stopInputListening();
- this.hide();
- this.owner.show();
- },
-
- next: function() {
- var that = this;
- var user = {
- "name": preferences.getName(),
- "password": this.$.password.getPassword()
- };
- if (this.step == 0) {
- that.$.spinner.setShowing(true);
- myserver.loginUser(user, function(loginSender, loginResponse) {
- preferences.setToken({'x_key': loginResponse.user._id, 'access_token': loginResponse.token});
- that.$.warningmessage.setShowing(false);
- that.$.password.setPassword("");
- that.$.next.setText(l10n.get("Done"));
- that.$.message.setContent(l10n.get("SecurityMessageNew", {min: util.getMinPasswordSize()}));
- that.step++;
- that.$.spinner.setShowing(false);
- },
- function(response, error) {
- if (error == 1) {
- that.$.warningmessage.setContent(l10n.get("InvalidPassword"));
- } else {
- that.$.warningmessage.setContent(l10n.get("ServerError", {code: error}));
- }
- that.$.warningmessage.setShowing(true);
- that.$.spinner.setShowing(false);
- });
- } else {
- var pass = this.$.password.getPassword();
- if (pass.length == 0 || pass.length < util.getMinPasswordSize()) {
- return;
- }
- that.$.spinner.setShowing(true);
- myserver.putUser(
- preferences.getNetworkId(),
- {
- password: this.$.password.getPassword()
- },
- function(inSender, inResponse) {
- that.$.message.setContent(l10n.get("SecurityMessageDone"));
- that.$.next.setShowing(false);
- that.$.password.setShowing(false);
- that.$.warningmessage.setShowing(false);
- that.$.spinner.setShowing(false);
- },
- function(response, error) {
- that.$.warningmessage.setContent(l10n.get("ServerError", {code: error}));
- that.$.warningmessage.setShowing(true);
- that.$.spinner.setShowing(false);
- }
- );
- }
- }
- });
-
-
- // Language dialog
- enyo.kind({
- name: "Sugar.DialogLanguage",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", size: constant.sizeToolbar, icon: {directory: "icons", icon: "module-language.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "restart"},
- {name: "content", components: [
- {name: "message", content: "xxx", classes: "language-message"},
- {name: "languageselect", kind: "Sugar.SelectBox", classes: "language-select", onIndexChanged: "languageChanged"},
- {name: "restartmessage", content: "xxx", classes: "language-restart", showing: false}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("Language"));
- this.$.message.setContent(l10n.get("ChooseLanguage"));
- this.initlanguage = this.currentlanguage = preferences.getLanguage();
- this.languageset = [
- {code: "en", icon: null, name: "English (" + l10n.get("English") +")"},
- {code: "es", icon: null, name: "Español (" + l10n.get("Spanish") +")"},
- {code: "fr", icon: null, name: "Français (" + l10n.get("French") +")"},
- {code: "de", icon: null, name: "Deutsch (" + l10n.get("German") +")"},
- {code: "pt", icon: null, name: "Português (" + l10n.get("Portuguese") +")"},
- {code: "ar", icon: null, name: "عربي (" + l10n.get("Arabic") +")"},
- {code: "ja", icon: null, name: "日本語 (" + l10n.get("Japanese") +")"},
- {code: "pl", icon: null, name: "Polski (" + l10n.get("Polish") +")"},
- {code: "ibo", icon: null, name: "Igbo (" + l10n.get("Igbo") +")"},
- {code: "yor", icon: null, name: "Yoruba (" + l10n.get("Yoruba") +")"}
- ];
- this.$.languageselect.setItems(this.languageset);
- for (var i = 0 ; i < this.languageset.length ; i++) {
- if (this.languageset[i].code == this.initlanguage) {
- this.$.languageselect.setSelected(i);
- break;
- }
- }
- this.$.restartmessage.setContent(l10n.get("ChangesRequireRestart"));
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- this.$.message.addClass("rtl-10");
- this.$.restartmessage.addClass("rtl-10");
- }
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.$.languageselect.setParentMargin(this);
- this.owner.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- this.owner.show();
- },
-
- ok: function() {
- if (this.currentlanguage == this.initlanguage) {
- this.hide();
- this.owner.show();
- return;
- }
- this.$.warningbox.setShowing(true);
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- },
-
- languageChanged: function() {
- this.$.restartmessage.setShowing(true);
- this.currentlanguage = this.languageset[this.$.languageselect.getSelected()].code;
- },
-
- restart: function() {
- stats.trace('my_settings_language', 'change', 'language', null);
- preferences.setLanguage(this.currentlanguage);
- preferences.save();
- preferences.saveToServer(myserver, function() {
- util.restartApp();
- }, function() {
- util.restartApp();
- });
- }
- });
-
-
-
- // Computer dialog
- enyo.kind({
- name: "Sugar.DialogComputer",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", size: constant.sizeToolbar, icon: {directory: "icons", icon: "module-about_my_computer.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "reinit"},
- {name: "content", kind: "Scroller", classes: "computer-content", components: [
- {name: "software", content: "xxx", classes: "computer-software"},
- {content: "Sugarizer:", classes: "computer-sugarizer"},
- {name: "sugarizer_value", classes: "computer-value", ontap: "version"},
- {classes: "computer-line"},
- {name: "clienttype", classes: "computer-clienttype"},
- {name: "clienttype_value", classes: "computer-value"},
- {classes: "computer-line"},
- {name: "browser", content: "xxx", classes: "computer-browser"},
- {name: "browser_value", classes: "computer-value"},
- {classes: "computer-line"},
- {name: "browserversion", content: "xxx", classes: "computer-browserversion"},
- {name: "browserversion_value", classes: "computer-value"},
- {classes: "computer-line"},
- {name: "useragent", content: "xxx", classes: "computer-useragent"},
- {name: "useragent_value", classes: "computer-value"},
- {name: "storage", content: "xxx", classes: "computer-storage"},
- {name: "storage_value", classes: "computer-value"},
- {classes: "computer-line"},
- {name: "reinitcheck", showing: false, kind: "Input", type: "checkbox", classes: "toggle computer-reinitcheck", onchange: "switchInit"},
- {name: "reinittext", showing: false, content: "xxx", classes: "computer-reinit"},
- {classes: "computer-line"},
- {name: "copyright", content: "xxx", classes: "computer-copyright"},
- {content: "© 2013-2019 Lionel Laské, Sugar Labs Inc and Contributors", classes: "computer-contributor"},
- {name: "license", content: "xxx", classes: "computer-licence"},
- {name: "licenseplus", content: "xxx", classes: "computer-licence"},
- {name: "warningmessage", showing: false, content: "xxx", classes: "computer-warningmessage", showing: false}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("AboutMyComputer"));
- this.$.software.setContent(l10n.get("Software"));
- this.$.browser.setContent(l10n.get("Browser"));
- this.$.clienttype.setContent(l10n.get("ClientType"));
- this.$.browserversion.setContent(l10n.get("BrowserVersion"));
- this.$.useragent.setContent(l10n.get("UserAgent"));
- this.$.storage.setContent(l10n.get("Storage"));
- this.$.copyright.setContent(l10n.get("Copyright"));
- this.$.license.setContent(l10n.get("LicenseTerms"));
- this.$.licenseplus.setContent(l10n.get("LicenseTermsPlus"));
- this.$.warningmessage.setContent(l10n.get("AllDataWillBeLost"));
- this.$.reinittext.setContent(l10n.get("ReinitJournalAndSettings"));
- this.notify = humane.create({ timeout: 1000, baseCls: 'humane-libnotify' })
- this.clickLeft = 3;
-
- this.$.sugarizer_value.setContent(constant.sugarizerVersion);
- this.$.clienttype_value.setContent(util.getClientName());
- this.$.browser_value.setContent(util.getBrowserName());
- this.$.browserversion_value.setContent(util.getBrowserVersion());
- this.$.useragent_value.setContent(navigator.userAgent);
- var that = this;
- util.computeDatastoreSize(function(size) {
- that.$.storage_value.setContent(l10n.get("StorageSize", {used: size.bytes, formatted: size.formatted}));
- });
-
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- this.$.software.addClass("rtl-10");
- this.$.browser.addClass("rtl-10");
- this.$.clienttype.addClass("rtl-10");
- this.$.browserversion.addClass("rtl-10");
- this.$.useragent.addClass("rtl-10");
- this.$.storage.addClass("rtl-10");
- this.$.copyright.addClass("rtl-10");
- this.$.license.addClass("rtl-10");
- }
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.owner.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- this.owner.show();
- },
-
- ok: function() {
- if (this.$.reinitcheck.getNodeProperty("checked")) {
- this.$.warningbox.setShowing(true);
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- } else {
- this.hide();
- this.owner.show();
- }
- },
-
- reinit: function() {
- util.cleanDatastore(true, function() {
- util.restartApp();
- });
- },
-
- switchInit: function() {
- this.$.warningmessage.setShowing(this.$.reinitcheck.getNodeProperty("checked"));
- },
-
- version: function() {
- this.clickLeft--;
- if (this.clickLeft == 0) {
- this.$.reinittext.setShowing(true);
- this.$.reinitcheck.setShowing(true);
- } else if (this.clickLeft > 0) {
- this.notify.log(l10n.get("ClickMore"));
- }
- }
- });
-
-
-
- // Server dialog
- enyo.kind({
- name: "Sugar.DialogServer",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", size: constant.sizeToolbar, icon: {directory: "icons", icon: "cloud-settings.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "restart"},
- {name: "content", components: [
- {name: "connected", kind: "Input", type: "checkbox", classes: "toggle aboutserver-checkbox", onchange: "switchConnection"},
- {name: "textconnected", content: "xxx", classes: "aboutserver-message"},
- {components:[
- {name: "textservername", content: "xxx", classes: "aboutserver-serverlabel"},
- {name: "servername", kind: "Input", classes: "aboutserver-servername", onkeydown: "enterclick"},
- {name: "qrbutton", kind: "Sugar.Icon", size: constant.sizeEmpty, icon: {directory: "icons", icon: "qrcode.svg"}, ontap: "scanQR", classes: "aboutserver-qr", showing: false}
- ]},
- {name: "serversettingsname", classes: "aboutserver-settingsname"},
- {name: "serversettingsvalue", classes: "aboutserver-settingsvalue"},
- {name: "serverdescription", classes: "aboutserver-description"},
- {name: "serverdescriptionvalue", classes: "aboutserver-descriptionvalue"},
- {components:[
- {name: "textusername", content: "xxx", classes: "aboutserver-userlabel"},
- {name: "username", kind: "Input", classes: "aboutserver-username", oninput: "changed"}
- ]},
- {name: "passwordmessage", classes: "aboutserver-passwordmessage"},
- {name: "password", kind: "Sugar.Password", classes: "aboutserver-password", onEnter: "next"},
- {name: "next", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "go-right.svg"}, classes: "aboutserver-rightbutton", ontap: "next"},
- {name: "spinner", kind: "Image", src: "images/spinner-light.gif", classes: "aboutserver-spinner", showing: false},
- {name: "warningmessage", content: "xxx", classes: "aboutserver-warningmessage", showing: false}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("Server"));
- this.$.textconnected.setContent(l10n.get("ConnectedToServer"));
- this.$.textservername.setContent(l10n.get("ServerUrl"));
- this.$.serversettingsname.setContent(l10n.get("ServerName"));
- this.$.serverdescription.setContent(l10n.get("ServerDescription"));
- this.$.textusername.setContent(l10n.get("UserId"));
- this.$.next.setText(l10n.get("Next"));
- this.currentserver = preferences.getServer();
- this.initconnected = preferences.isConnected();
- this.initservername = (this.currentserver && this.currentserver.url) ? this.currentserver.url : util.getCurrentServerUrl();
- this.initusername = preferences.getName();
- this.networkId = null;
- this.forbidcheck = false;
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- this.$.textconnected.addClass("rtl-10");
- this.$.warningmessage.addClass("rtl-10");
- this.$.textservername.addClass("rtl-10");
- this.$.textusername.addClass("rtl-10");
- this.$.textusermessage.addClass("rtl-10");
- this.$.next.addClass("rtl-10");
- }
-
- this.step = 0;
- if (util.getClientType() == constant.webAppType) {
- this.step = 3;
- } else {
- if (!this.initconnected) {
- this.step = 0;
- } else {
- var token = preferences.getToken();
- if (token && token.expired) {
- this.step = 2;
- } else {
- this.step = 3;
- }
- }
- }
- this.displayStep();
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.$.connected.setNodeProperty("checked", this.initconnected);
- if (util.getClientType() == constant.webAppType) {
- this.$.servername.setDisabled(true);
- this.$.username.setDisabled(true);
- }
- this.centerDialog(this);
- },
-
- centerDialog: function(dialog) {
- var margin = util.computeMargin({width: 800, height: 500}, {width: 0.95, height: 0.95});
- dialog.applyStyle("margin-left", margin.left+"px");
- dialog.applyStyle("margin-top", (margin.top-55)+"px");
- return margin;
- },
-
- displayStep: function() {
- var
- vtextservername = false,
- vserversettingsname = false,
- vserverdescription = false,
- vtextservername = false,
- vservername = false,
- vserversettingsvalue = false,
- vserverdescriptionvalue = false,
- vserverqr = false,
- vtextusername = false,
- vusername = false,
- vnext = false,
- vpasswordmessage = false,
- vpassword = false;
- if (this.step == 0) {
- this.$.passwordmessage.setContent(l10n.get("PleaseConnectMessage"));
- vpasswordmessage = true;
- } else if (this.step == 1) {
- this.$.servername.setValue(constant.defaultServer);
- vtextservername = vservername = vnext = true;
- vserverqr = (enyo.platform.ios || enyo.platform.android || enyo.platform.androidChrome);
- } else if (this.step == 2) {
- vpasswordmessage = vpassword = vnext = true;
- this.$.password.startInputListening();
- if (preferences.getToken() && preferences.getToken().expired) {
- this.$.passwordmessage.setContent(l10n.get("SecurityMessageExpired", {min: util.getMinPasswordSize()}));
- } else {
- this.$.passwordmessage.setContent(l10n.get("SecurityMessageNew", {min: util.getMinPasswordSize()}));
- }
- } else if (this.step == 3) {
- this.$.servername.setValue(this.initservername);
- this.$.username.setValue(this.initusername);
- this.$.serversettingsvalue.setContent(this.currentserver.name);
- this.$.serverdescriptionvalue.setContent(this.currentserver.description);
- this.$.servername.setDisabled(true);
- vtextservername = vserversettingsname = vserverdescription = vtextservername = vservername = vserversettingsvalue = vserverdescriptionvalue = vtextusername = vusername = true;
- }
- this.$.textservername.setShowing(vtextservername);
- this.$.serversettingsname.setShowing(vserversettingsname);
- this.$.serverdescription.setShowing(vserverdescription);
- this.$.textservername.setShowing(vtextservername);
- this.$.servername.setShowing(vservername);
- this.$.qrbutton.setShowing(vserverqr);
- this.$.serversettingsvalue.setShowing(vserversettingsvalue);
- this.$.serverdescriptionvalue.setShowing(vserverdescriptionvalue);
- this.$.textusername.setShowing(vtextusername);
- this.$.username.setShowing(vusername);
- this.$.next.setShowing(vnext);
- this.$.passwordmessage.setShowing(vpasswordmessage);
- this.$.password.setShowing(vpassword);
- },
-
- // Event handling
- cancel: function() {
- if (!this.initconnected && this.hasChanged()) {
- preferences.setServer(null);
- }
- this.hide();
- this.owner.show();
- this.$.password.stopInputListening();
- },
-
- ok: function() {
- if (!this.hasChanged() || (this.$.connected.getNodeProperty("checked") && this.step != 3)) {
- this.hide();
- this.owner.show();
- return;
- }
- this.$.warningbox.setShowing(true);
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- this.$.password.stopInputListening();
- },
-
- switchConnection: function() {
- if (this.forbidcheck) {
- this.$.connected.setNodeProperty("checked", !this.$.connected.getNodeProperty());
- return;
- }
- this.forbidcheck = true;
- if (util.getClientType() == constant.webAppType) {
- this.$.connected.setNodeProperty("checked", true);
- return;
- }
- if (this.step == 0) {
- this.step++;
- this.displayStep();
- }
- },
-
- next: function() {
- if (this.step == 1) {
- // Retrieve server information
- var that = this;
- that.$.spinner.setShowing(true);
- myserver.getServerInformation(this.$.servername.getValue(), function(inSender, inResponse) {
- that.currentserver = inResponse;
- that.currentserver.url = that.$.servername.getValue();
- if (that.currentserver.secure) {
- that.currentserver.url = that.currentserver.url.replace(constant.http, constant.https);
- } else {
- that.currentserver.url = that.currentserver.url.replace(constant.https, constant.http);
- }
- preferences.setServer(that.currentserver);
- that.initservername = that.$.servername.getValue();
- that.step++;
- that.displayStep();
- that.$.spinner.setShowing(false);
- that.$.warningmessage.setShowing(false);
- }, function() {
- that.$.warningmessage.setContent(l10n.get("ErrorLoadingRemote"));
- that.$.warningmessage.setShowing(true);
- that.$.spinner.setShowing(false);
- });
- } else if (this.step == 2) {
- // Validate password size
- var pass = this.$.password.getPassword();
- if (pass.length == 0 || pass.length < util.getMinPasswordSize()) {
- return;
- }
-
- // Try first to create a new user
- var that = this;
- that.$.spinner.setShowing(true);
- myserver.postUser(
- {
- name: preferences.getName(),
- color: preferences.getColor(),
- language: preferences.getLanguage(),
- role: "student",
- password: this.$.password.getPassword(),
- options: { sync: preferences.getOptions("sync"), stats: preferences.getOptions("stats") }
- },
- function(inSender, inResponse) {
- that.login();
- },
- function(response, error) {
- // User already exist, try to login instead
- if (error == 22) {
- that.login();
- } else {
- that.$.warningmessage.setContent(l10n.get("ServerError", {code: error}));
- that.$.warningmessage.setShowing(true);
- that.$.spinner.setShowing(false);
- }
- }
- );
- }
- },
-
- login: function() {
- var that = this;
- var user = {
- name: preferences.getName(),
- password: that.$.password.getPassword()
- };
- myserver.loginUser(user, function(loginSender, loginResponse) {
- that.step++;
- that.displayStep();
- that.networkId = loginResponse.user._id;
- preferences.setToken({'x_key': that.networkId, 'access_token': loginResponse.token});
- preferences.setPrivateJournal(loginResponse.user.private_journal);
- preferences.setSharedJournal(loginResponse.user.shared_journal);
- that.$.warningmessage.setContent(l10n.get("ChangesRequireRestart"));
- that.$.warningmessage.setShowing(true);
- that.$.spinner.setShowing(false);
- that.$.warningbox.setShowing(true);
- that.$.okbutton.setDisabled(true);
- that.$.cancelbutton.setDisabled(true);
- },
- function(response, error) {
- // Login error, retry
- if (error == 1) {
- that.$.warningmessage.setContent(l10n.get("UserLoginInvalid"));
- } else {
- that.$.warningmessage.setContent(l10n.get("ServerError", {code: error}));
- }
- that.$.warningmessage.setShowing(true);
- that.$.spinner.setShowing(false);
- }
- );
- },
-
- restart: function() {
- // Now ConnectedToServer
- var nowconnected = this.$.connected.getNodeProperty("checked");
- preferences.setConnected(nowconnected);
- if (nowconnected) {
- preferences.setNetworkId(this.networkId);
- } else {
- preferences.setNetworkId(null);
- preferences.setServer(null);
- preferences.setToken(null);
- }
- preferences.save();
- util.restartApp();
- },
-
- // Handle QR Code scanner
- scanQR: function() {
- var that = this;
- var toolbar = document.getElementById("toolbar");
- this.hide();
- toolbar.style.visibility = 'hidden';
- util.scanQRCode(function(code) {
- toolbar.style.visibility = 'visible';
- that.show();
- that.$.servername.setValue(code);
- }, function() {
- toolbar.style.visibility = 'visible';
- that.show();
- that.$.servername.focus();
- that.$.servername.hasNode().select()
- });
- },
-
- // Utility
- hasChanged: function() {
- var currentconnected = this.$.connected.getNodeProperty("checked");
- return (this.initconnected != currentconnected);
- },
-
- enterclick: function(inSender, inEvent) {
- if (inEvent.keyCode === 13) {
- this.next();
- return true;
- }
- }
- });
-
-
-
- // Privacy dialog
- enyo.kind({
- name: "Sugar.DialogPrivacy",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", size: constant.sizeToolbar, icon: {directory: "icons", icon: "privacy.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "restart"},
- {name: "content", components: [
- {name: "stats", kind: "Input", type: "checkbox", classes: "toggle privacy-statscheckbox"},
- {name: "textstats", content: "xxx", classes: "privacy-statsmessage"},
- {content: ""},
- {name: "sync", kind: "Input", type: "checkbox", classes: "toggle privacy-synccheckbox"},
- {name: "textsync", content: "xxx", classes: "privacy-syncmessage"},
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("MyPrivacy"));
- this.$.textstats.setContent(l10n.get("PrivacyStats"));
- this.$.textsync.setContent(l10n.get("PrivacySync"));
- this.initstats = preferences.getOptions("stats");
- this.initsync = preferences.getOptions("sync");
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- this.$.textstats.addClass("rtl-10");
- this.$.textsync.addClass("rtl-10");
- }
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.$.stats.setNodeProperty("checked", !this.initstats);
- this.$.sync.setNodeProperty("checked", !this.initsync);
- this.owner.centerDialog(this);
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- this.owner.show();
- },
-
- ok: function() {
- if (!this.hasChanged()) {
- this.hide();
- this.owner.show();
- return;
- }
- this.$.warningbox.setShowing(true);
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- },
-
- restart: function() {
- if (this.hasChanged()) {
- preferences.setOptions("stats", !this.$.stats.getNodeProperty("checked"));
- preferences.setOptions("sync", !this.$.sync.getNodeProperty("checked"));
- preferences.save();
- preferences.saveToServer(myserver, null, null);
- }
- util.restartApp();
- },
-
- // Utility
- hasChanged: function() {
- var currentstats = !this.$.stats.getNodeProperty("checked");
- var currentsync = !this.$.sync.getNodeProperty("checked");
- return (this.initstats != currentstats || this.initsync != currentsync);
- }
- });
-
-
- //-------------------------- Settings utility classes
-
- // Class for an item in the settings dialog
- enyo.kind({
- name: "Sugar.DialogSettingsItem",
- kind: enyo.Control,
- classes: "settings-item",
- published: {
- icon: null,
- text: null,
- colorized: false,
- disabled: false
- },
- components: [
- {components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "settings-item-icon", size: constant.sizeSettings, disabledBackground: "#000000"},
- {name: "text", content: "xxx", classes: "settings-item-text"}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.colorizedChanged();
- this.iconChanged();
- this.textChanged();
- this.disabledChanged();
- },
-
- // Property changed
- iconChanged: function() {
- this.$.icon.setIcon(this.icon);
- },
-
- textChanged: function() {
- this.$.text.setContent(this.text);
- },
-
- colorizedChanged: function() {
- this.$.icon.setColorized(this.colorized);
- },
-
- disabledChanged: function() {
- this.$.icon.setDisabled(this.disabled);
- this.addRemoveClass('settings-item-text-disable', this.disabled);
- this.addRemoveClass('settings-item-text-enable', !this.disabled);
- }
- });
-
-
-
- // Class for a Warning box in settings
- enyo.kind({
- name: "Sugar.DialogSettingsWarningBox",
- kind: enyo.Control,
- classes: "settings-warningbox",
- events: { onRestart: "", onCancel: "" },
- components: [
- {name: "warningtitle", content: "xxx", classes: "warningbox-title"},
- {name: "warningmessage", content: "xxx", classes: "warningbox-message"},
- {name: "warningcancel", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "dialog-cancel.svg"}, classes: "warningbox-cancel-button", ontap: "cancel"},
- {name: "warningrestart", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "system-restart.svg"}, classes: "warningbox-refresh-button", ontap: "restart"}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.warningtitle.setContent(l10n.get("Warning"));
- this.$.warningmessage.setContent(l10n.get("ChangesRequireRestart"));
- this.$.warningcancel.setText(l10n.get("CancelChanges"));
- this.$.warningrestart.setText(l10n.get("RestartNow"));
- if (l10n.language.direction == "rtl") {
- this.$.warningtitle.addClass("rtl-10");
- this.$.warningmessage.addClass("rtl-10");
- }
- },
-
- // Events
- cancel: function() {
- this.doCancel();
- },
-
- restart: function() {
- this.doRestart();
- }
- });
-
-
- //Dialog to change launcher on a native device
- enyo.kind({
- name: "Sugar.DialogChangeLauncher",
- kind: "enyo.Popup",
- classes: "module-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: false,
- components: [
- {name: "toolbar", classes: "toolbar", components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "module-icon", colorized: true, size: constant.sizeToolbar, icon: {directory: "icons", icon: "owner-icon.svg"}},
- {name: "text", content: "xxx", classes: "module-text"},
- {name: "cancelbutton", kind: "Button", classes: "toolbutton module-cancel-button", ontap: "cancel"},
- {name: "okbutton", kind: "Button", classes: "toolbutton module-ok-button", ontap: "ok"}
- ]},
- {name: "warningbox", kind: "Sugar.DialogSettingsWarningBox", showing: false, onCancel: "cancel", onRestart: "restart"},
- {name: "content", components: [
- {classes: "enterkey", components: [
- {name: "keyInput", kind: "Input", classes: "enterkey-input", oninput:"keychanged"}
- ]},
- {name: "connectButton", kind: "Button", classes: "toolbutton", ontap: "ok"}
- ]}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.text.setContent(l10n.get("EnterKey"));
- if (l10n.language.direction == "rtl") {
- this.$.text.addClass("rtl-10");
- }
- },
-
- rendered: function() {
- this.inherited(arguments);
- this.$.icon.render();
- this.$.cancelbutton.setNodeProperty("title", l10n.get("Cancel"));
- this.$.okbutton.setNodeProperty("title", l10n.get("Ok"));
- this.$.connectButton.setContent(l10n.get("Ok"));
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- },
-
- ok: function() {
- sugarizerOS.sharedKeyBuffer = this.$.keyInput.getValue();
- this.hide();
- this.$.okbutton.setDisabled(true);
- this.$.cancelbutton.setDisabled(true);
- },
-
- keychanged: function() {
- },
-
- connect: function() {
- },
-
- centerDialog: function(dialog) {
- var margin = util.computeMargin({width: 800, height: 500}, {width: 0.95, height: 0.95});
- dialog.applyStyle("margin-left", margin.left+"px");
- dialog.applyStyle("margin-top", (margin.top-55)+"px");
- }
- });
-
-
- // Waring message dialog
- enyo.kind({
- name: "Sugar.DialogWarningMessage",
- kind: "enyo.Popup",
- classes: "warning-dialog",
- centered: false,
- modal: true,
- floating: true,
- autoDismiss: true,
- components: [
- {name: "icon", kind: "Sugar.Icon", x: 6, y: 6, classes: "warningdialog-icon", size: constant.sizeToolbar, icon: {directory: "icons", icon: "emblem-warning.svg"}},
- {name: "warningtitle", content: "xxx", classes: "warningdialog-title"},
- {name: "warningmessage", content: "xxx", classes: "warningdialog-message"},
- {name: "warningcancel", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "dialog-cancel.svg"}, classes: "warningdialog-cancel-button", ontap: "cancel"},
- {name: "warningrestart", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "system-shutdown.svg"}, classes: "warningdialog-ok-button", ontap: "ok"},
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.$.warningtitle.setContent(l10n.get("Warning"));
- this.$.warningmessage.setContent(l10n.get("AllDataWillBeLost"));
- this.$.warningcancel.setText(l10n.get("CancelChanges"));
- this.$.warningrestart.setText(l10n.get("Logoff"));
- },
- rendered: function() {
- this.inherited(arguments);
- var margin = util.computeMargin({width: 800, height: 150}, {width: 0.95, height: 0.95});
- this.applyStyle("margin-left", margin.left+"px");
- this.applyStyle("margin-top", (margin.top-55)+"px");
- },
-
- // Event handling
- cancel: function() {
- this.hide();
- },
-
- ok: function() {
- this.hide();
- preferences.addUserInHistory();
- util.cleanDatastore(null, function() {
- util.restartApp();
- });
- }
- });
-
-
-
-
- // Class for a generic Warning box
- enyo.kind({
- name: "Sugar.GenericDialogBox",
- kind: enyo.Control,
- classes: "genericbox",
- events: { onOk: "", onCancel: "", onShow: "", onHide: "" },
- published: {
- title: null,
- message: null,
- okText: '',
- cancelText: ''
- },
- components: [
- {name: "warningtitle", content: "xxx", classes: "genericbox-title"},
- {name: "warningmessage", content: "xxx", classes: "genericbox-message"},
- {name: "warningcancel", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "dialog-cancel.svg"}, classes: "genericbox-cancel-button", ontap: "cancel"},
- {name: "warningok", kind: "Sugar.IconButton", icon: {directory: "icons", icon: "dialog-ok.svg"}, classes: "genericbox-ok-button", ontap: "ok"}
- ],
-
- // Constructor
- create: function() {
- this.inherited(arguments);
- this.titleChanged();
- this.messageChanged();
- this.okTextChanged();
- this.cancelTextChanged();
- if (l10n.language.direction == "rtl") {
- this.$.warningtitle.addClass("rtl-10");
- this.$.warningmessage.addClass("rtl-10");
- }
- },
-
- titleChanged: function() {
- this.$.warningtitle.setContent(this.title);
- },
-
- messageChanged: function() {
- this.$.warningmessage.setContent(this.message);
- },
-
- cancelTextChanged: function() {
- this.$.warningcancel.setText(this.cancelText);
- },
-
- okTextChanged: function() {
- this.$.warningok.setText(this.okText);
- },
-
- showingChanged: function() {
- this.inherited(arguments);
- if (this.showing) {
- this.doShow();
- } else {
- this.doHide();
- }
- },
-
- // Events
- cancel: function() {
- this.doCancel();
- },
-
- ok: function() {
- this.doOk();
- }
- });
|