This commit is contained in:
Peli de Halleux 2015-04-29 11:44:40 -07:00
Родитель 6a3f8db39a
Коммит ead67b1981
10 изменённых файлов: 199 добавлений и 242 удалений

Просмотреть файл

@ -158,14 +158,6 @@ module TDev
return Promise.as();
}
public tweakMsg()
{
var d = div("copyright-text", lf("give feedback about touchdevelop!")).withClick(Editor.showFeedbackBox)
if (SizeMgr.phoneMode)
Browser.setInnerHTML(d, "<span class='beta-underline'>" + lf("feedback") + "</span>");
return d;
}
public showAppView(logs? : LogMessage[]) {
TDev.RT.App.showAppLogAsync(logs, undefined, els => {
els.filter(el => el.dataset['crash']).forEach(el => {
@ -223,7 +215,7 @@ module TDev
this.updatePause()
var btns = [this.pauseBtnDiv];
if (ScriptEditorWorldInfo.status != "published" && TheEditor.widgetEnabled("wallLogsButton"))
if (ScriptEditorWorldInfo.status != "published" && TDev.Browser.EditorSettings.widgetEnabled("wallLogsButton"))
btns.push(HTML.mkRoundButton("svg:CommandLine,black", lf("logs"), Ticks.wallLogs, () => this.showAppView()));
return btns;
}
@ -1116,96 +1108,6 @@ module TDev
super();
}
// widgets not support in restricted mode
static unrestrictedWidgets: StringMap<number> = {
splitScreen: 1,
}
static blockWidgets: StringMap<number> = {
// edit
addNewButton: 1,
undoButton: 1,
// refactoring
promoteRefactoring: 1,
fixItButton: 1,
splitScreen: 1,
}
static legacyWidgets: StringMap<number> = {
// edit
copyPaste: 1,
// features
actionSettings: 1,
publishAsHidden: 1,
// refactoring
simplify: 1,
// ui
splitButton: 1,
uploadArtInSearchButton: 1,
calcApiHelp: 1,
sideRunButton: 1,
tutorialGoToPreviousStep : 1,
// sections
dataSection: 1,
eventsSection: 1,
artSection:1,
librariesSection: 1,
scriptPropertiesSettings: 1,
// statements
comment: 1,
// hub
scriptAddToChannel: 1,
}
static proWidgets: StringMap<number> = {
//navigation
codeSearch:1,
findReferences: 1,
gotoNavigation: 1,
goToDef: 1,
// refactorings
moveToLibrary: 1,
stripBlock: 1,
// debugging
toggleBreakpoint: 1,
debugButton: 1,
// ui
publishDescription: 1,
sendPullRequest: 1,
// sections
testsSection: 1,
actionTypesSection:1,
pagesSection: 1,
recordsSection:1,
// script lifecycle
updateButton: 1,
editLibraryButton: 1,
errorsButton: 1,
logsButton: 1,
deployButton:1,
// ui
pluginsButton: 1,
runTestsButton:1,
scriptPropertiesManagement: 1,
scriptPropertiesIcons: 1,
scriptPropertiesExport: 1,
scriptPropertiesPlatform: 1,
scriptPropertiesInstrumentation: 1,
scriptPropertiesData: 1,
wallLogsButton: 1,
scriptPropertiesPropertyCloud: 1,
scriptPropertiesPropertyAllowExport: 1,
stringEditFullScreen: 1,
// language
async: 1,
testAction: 1,
lambda: 1,
// hub
commentHistory: 1,
scriptPullChanges: 1,
scriptDiffToBase: 1,
scriptHistoryTab: 1,
scriptInsightsTab: 1,
githubLinks: 1,
}
public toggleWidgetVisibility(name: string, el: HTMLElement) {
if (this.widgetEnabled(name))
el.style.display = 'block';
@ -1214,21 +1116,10 @@ module TDev
}
public widgetEnabled(name: string): boolean {
if (Cloud.isRestricted() && Editor.unrestrictedWidgets[name]) return false;
if (!TDev.Browser.EditorSettings.widgetEnabled(name)) return false;
if (this.intelliProfile && this.intelliProfile.hasKey("tutorialWidgets"))
return this.intelliProfile.hasKey(name)
if (TDev.isBeta)
Util.assert(!!Editor.blockWidgets[name] || !!Editor.legacyWidgets[name] || !!Editor.proWidgets[name], "uncategorized widget " + name);
if (AST.blockMode && !Editor.blockWidgets[name])
return false
if (AST.legacyMode && !Editor.blockWidgets[name] && !Editor.legacyWidgets[name])
return false;
return true
return true;
}
public editedStmt(selectorOk = false):AST.Stmt
@ -4510,7 +4401,7 @@ module TDev
this.dismissSidePane();
});
elt("scriptEditor").appendChild(this.betaNote = Editor.mkBetaNote());
elt("scriptEditor").appendChild(this.betaNote = TDev.Browser.EditorSettings.mkBetaNote());
elt("scriptEditor").withClick(() => {}) // disable text selection
this.setupTopButtons();
@ -5262,67 +5153,6 @@ module TDev
this.applyVideoConstraints();
}
static showFeedbackBox()
{
var link = (text:string, lnk:string) =>
HTML.mkButton(text,
() => { window.open(Cloud.getServiceUrl() + lnk) });
if (ModalDialog.current && !ModalDialog.current.canDismiss) {
window.open(Cloud.getServiceUrl());
return;
}
var relId = "(local)";
var mtch = /-(\d+)\//.exec(Ticker.mainJsName)
if (mtch) relId = mtch[1];
var m = new ModalDialog();
m.fullWhite();
m.add(div("wall-dialog-header", Runtime.appName));
m.add(div("wall-dialog-body", "Running against cloud services v" + relId + "."));
m.add(div("wall-dialog-buttons",
HTML.mkButton(lf("sign out"),() => TheEditor.logoutDialog()),
link(lf("privacy and cookies"), "/privacy"),
link(lf("legal"), "/legal")
));
if (TheEditor.widgetEnabled("githubLinks")) {
m.add(div("wall-dialog-buttons",
HTML.mkButton(lf("changes"),() => {
HTML.showProgressNotification(lf("downloading change log..."))
Util.httpGetJsonAsync((<any>window).mainJsName.replace(/main.js$/, "buildinfo.json"))
.then(t => RT.Web.browseAsync("http://github.com/Microsoft/TouchDevelop/commits/" + t.commit))
.done();
}),
link(lf("GitHub"), "https://github.com/Microsoft/TouchDevelop")
));
}
m.show();
}
static mkBetaNote() : HTMLElement
{
var beta = div("beta-note");
var betaFriendlyId = (<any>window).betaFriendlyId;
var betaNote = (<any>window).betaFriendlyId ? ("<b>" + betaFriendlyId + "</b> ") : "";
var copyrights = "<div class='beta-legal'>© 2015 <span class='beta-black'>Microsoft</span></div>" +
"<div class='beta-legal'>" + (Cloud.getUserId() ? "<span class='beta-underline'>sign out</span>&nbsp;&nbsp;" : "") +
"<span class='beta-underline'>privacy and cookies</span>&nbsp;&nbsp;<span class='beta-underline'>legal</span></div>"
;
// there is a menu option for that in the wp8 app
if (Browser.isWP8app) copyrights = "";
Browser.setInnerHTML(beta, betaNote + copyrights);
beta.withClick(Editor.showFeedbackBox);
return beta;
}
public displayHelp()
{
tick(Ticks.calcHelp);

Просмотреть файл

@ -59,6 +59,65 @@ module TDev.Browser {
export var PRO_MODE = "pro";
export var CLASSIC_MODE = "classic";
export function showFeedbackBox() {
var link = (text: string, lnk: string) =>
HTML.mkButton(text,
() => { window.open(Cloud.getServiceUrl() + lnk) });
if (ModalDialog.current && !ModalDialog.current.canDismiss) {
window.open(Cloud.getServiceUrl());
return;
}
var relId = "(local)";
var mtch = /-(\d+)\//.exec(Ticker.mainJsName)
if (mtch) relId = mtch[1];
var m = new ModalDialog();
m.fullWhite();
m.add(div("wall-dialog-header", Runtime.appName));
m.add(div("wall-dialog-body", lf("Running against cloud services v" + relId + ".")));
var btns: HTMLElement;
m.add(btns = div("wall-dialog-buttons",
HTML.mkButton(lf("sign out"),() => TheEditor.logoutDialog()),
link(lf("privacy and cookies"), "/privacy"),
link(lf("legal"), "/legal")
));
if (EditorSettings.widgetEnabled("githubLinks")) {
btns.appendChild(HTML.mkButton(lf("changes"),() => {
HTML.showProgressNotification(lf("downloading change log..."))
Util.httpGetJsonAsync((<any>window).mainJsName.replace(/main.js$/, "buildinfo.json"))
.then(t => RT.Web.browseAsync("http://github.com/Microsoft/TouchDevelop/commits/" + t.commit))
.done();
}));
btns.appendChild(
link(lf("GitHub"), "https://github.com/Microsoft/TouchDevelop")
);
}
m.show();
}
export function mkBetaNote(): HTMLElement {
var beta = div("beta-note");
var betaFriendlyId = (<any>window).betaFriendlyId;
var betaNote = (<any>window).betaFriendlyId ? ("<b>" + betaFriendlyId + "</b> ") : "";
var copyrights = "<div class='beta-legal'>© 2015 <span class='beta-black'>Microsoft</span></div>" +
"<div class='beta-legal'>" + (Cloud.getUserId() ? "<span class='beta-underline'>sign out</span>&nbsp;&nbsp;" : "") +
"<span class='beta-underline'>privacy and cookies</span>&nbsp;&nbsp;<span class='beta-underline'>legal</span></div>"
;
// there is a menu option for that in the wp8 app
if (Browser.isWP8app) copyrights = "";
Browser.setInnerHTML(beta, betaNote + copyrights);
beta.withClick(EditorSettings.showFeedbackBox);
return beta;
}
export function init() {
if (window && window.location) {
if (Browser.isRaspberryPiDebian)
@ -159,6 +218,113 @@ module TDev.Browser {
}
}
// widgets not support in restricted mode
var unrestrictedWidgets: StringMap<number> = {
splitScreen: 1,
}
var blockWidgets: StringMap<number> = {
// edit
addNewButton: 1,
undoButton: 1,
// refactoring
promoteRefactoring: 1,
fixItButton: 1,
splitScreen: 1,
}
var legacyWidgets: StringMap<number> = {
// edit
copyPaste: 1,
// features
actionSettings: 1,
publishAsHidden: 1,
// refactoring
simplify: 1,
// ui
splitButton: 1,
uploadArtInSearchButton: 1,
calcApiHelp: 1,
sideRunButton: 1,
tutorialGoToPreviousStep : 1,
// sections
dataSection: 1,
eventsSection: 1,
artSection:1,
librariesSection: 1,
scriptPropertiesSettings: 1,
// statements
comment: 1,
// hub
scriptAddToChannel: 1,
}
var proWidgets: StringMap<number> = {
//navigation
codeSearch:1,
findReferences: 1,
gotoNavigation: 1,
goToDef: 1,
// refactorings
moveToLibrary: 1,
stripBlock: 1,
// debugging
toggleBreakpoint: 1,
debugButton: 1,
// ui
publishDescription: 1,
sendPullRequest: 1,
// sections
testsSection: 1,
actionTypesSection:1,
pagesSection: 1,
recordsSection:1,
// script lifecycle
updateButton: 1,
editLibraryButton: 1,
errorsButton: 1,
logsButton: 1,
deployButton:1,
// ui
pluginsButton: 1,
runTestsButton:1,
scriptPropertiesManagement: 1,
scriptPropertiesIcons: 1,
scriptPropertiesExport: 1,
scriptPropertiesPlatform: 1,
scriptPropertiesInstrumentation: 1,
scriptPropertiesData: 1,
wallLogsButton: 1,
scriptPropertiesPropertyCloud: 1,
scriptPropertiesPropertyAllowExport: 1,
stringEditFullScreen: 1,
// language
async: 1,
testAction: 1,
lambda: 1,
// hub
commentHistory: 1,
scriptPullChanges: 1,
scriptDiffToBase: 1,
scriptHistoryTab: 1,
scriptInsightsTab: 1,
githubLinks: 1,
}
export function widgetEnabled(name: string): boolean {
if (Cloud.isRestricted() && unrestrictedWidgets[name]) return false;
if (TDev.isBeta)
Util.assert(!!blockWidgets[name] || !!legacyWidgets[name] || !!proWidgets[name], "uncategorized widget " + name);
var mode = editorMode();
if (mode <= EditorMode.block && !blockWidgets[name])
return false
if (mode <= EditorMode.block && !blockWidgets[name] && !legacyWidgets[name])
return false;
return true
}
export function changeSkillLevelDiv(editor: Editor, tk: Ticks, cls = ""): HTMLElement {
var current = editorMode();
return div(cls, current < EditorMode.pro ? lf("Ready for more options?") : lf("Too many options?"), HTML.mkLinkButton(lf("Change skill level!"),() => {
@ -321,7 +487,7 @@ module TDev.Browser {
public init() {
this.theRoot.style.display = "none";
this.theRoot.id = "hubRoot";
this.theRoot.appendChild(Editor.mkBetaNote());
this.theRoot.appendChild(EditorSettings.mkBetaNote());
elt("root").appendChild(this.theRoot);
this.logo.withClick(() => {
tick(Ticks.hubAbout);
@ -1299,7 +1465,7 @@ module TDev.Browser {
if (!this.isBeginnerOrCoder()) {
elements.push(this.smallBtn(lf("Users"),() => { this.hide(); this.browser().showList("users", null) }, Ticks.hubSeeMoreUsers));
elements.push(this.smallBtn(lf("Give feedback Contact us"),() => { Editor.showFeedbackBox() }, Ticks.hubFeedback));
elements.push(this.smallBtn(lf("Give feedback Contact us"),() => { EditorSettings.showFeedbackBox() }, Ticks.hubFeedback));
elements.push(this.smallBtn(lf("Join Group"),() => { this.joinGroup() }, Ticks.hubJoinGroup));
elements.push(this.smallBtn(lf("Create Group"),() => { this.createGroup() }, Ticks.hubCreateGroup));
} else {
@ -1888,7 +2054,7 @@ module TDev.Browser {
static showAbout() {
if (Browser.isWP8app)
Editor.showFeedbackBox();
EditorSettings.showFeedbackBox();
else
Util.navigateInWindow(Cloud.config.rootUrl);
}

Просмотреть файл

@ -17,7 +17,7 @@
this.leftPane = div("slLeft", this.listHeader, this.theList, this.progressBar);
this.rightPane = div("slRight", this.hdContainer, this.tabLabelContainer, this.containerMarker, this.tabContainer);
this.theRoot = div("slRoot", this.rightPane, this.leftPane);
this.theRoot.appendChild(Editor.mkBetaNote());
this.theRoot.appendChild(EditorSettings.mkBetaNote());
}
private theList = div("slList");
private header = div("sdListLabel");
@ -2935,7 +2935,7 @@
div("sdAuthorLabel phone-hidden", HTML.mkImg("svg:" + network + ",#888,clip=100")).withClick(() => { TDev.RT.ShareManager.shareLinkAsync(TDev.RT.Web.link_url(text, url), network) })
));
}
if (Cloud.lite && this.parent instanceof ScriptInfo && TheEditor.widgetEnabled("scriptAddToChannel")) {
if (Cloud.lite && this.parent instanceof ScriptInfo && EditorSettings.widgetEnabled("scriptAddToChannel")) {
btns.unshift(div("sdAuthorLabel", HTML.mkImg("svg:list,#888,clip=100")).withClick(() => {
Meta.chooseListAsync({ header: lf("add to channel") }).done((info: ChannelInfo) => {
var si = (<ScriptInfo>this.parent);
@ -3545,7 +3545,7 @@
var si = this.browser().getScriptInfo(resp)
var hd = si.mkSmallBox();
hd.className += " sdBaseHeader"
if (TheEditor.widgetEnabled("commentHistory")) {
if (EditorSettings.widgetEnabled("commentHistory")) {
var btn = div("sdBaseCorner",
div(null, HTML.mkButton(lf("diff curr"),() => this.script().diffToId(resp.id))),
div(null, HTML.mkButton(lf("diff prev"),() => si.diffToBase())))
@ -5357,8 +5357,8 @@
if (sc.jsonScript && sc.jsonScript.time) {
var pull = TheEditor.widgetEnabled("scriptPullChanges") ? HTML.mkButtonTick(lf("pull changes"), Ticks.browsePush,() => (<ScriptInfo>this.parent).mergeScript()) : null;
var diff = TheEditor.widgetEnabled("scriptDiffToBase") ? HTML.mkButtonTick(lf("diff to base script"), Ticks.browseDiffBase,() => (<ScriptInfo>this.parent).diffToBase()) : null;
var pull = EditorSettings.widgetEnabled("scriptPullChanges") ? HTML.mkButtonTick(lf("pull changes"), Ticks.browsePush,() => (<ScriptInfo>this.parent).mergeScript()) : null;
var diff = EditorSettings.widgetEnabled("scriptDiffToBase") ? HTML.mkButtonTick(lf("diff to base script"), Ticks.browseDiffBase,() => (<ScriptInfo>this.parent).diffToBase()) : null;
divs.push(div('', pull, diff));
}
@ -6003,14 +6003,14 @@
if (!this.publicId)
r = [this,
new ScriptDetailsTab(this),
TheEditor.widgetEnabled("scriptHistoryTab") ? new HistoryTab(this) : null];
EditorSettings.widgetEnabled("scriptHistoryTab") ? new HistoryTab(this) : null];
else
r =
[
this,
this.editor() ? null : new ScriptDetailsTab(this),
TheEditor.widgetEnabled("scriptHistoryTab") ? new HistoryTab(this) : null,
TheEditor.widgetEnabled("scriptInsightsTab") ? new InsightsTab(this) : null,
EditorSettings.widgetEnabled("scriptHistoryTab") ? new HistoryTab(this) : null,
EditorSettings.widgetEnabled("scriptInsightsTab") ? new InsightsTab(this) : null,
Cloud.lite ? new AbuseReportsTab(this) : null,
];
return r;
@ -6595,13 +6595,13 @@
var publishBtn;
m.add(div("wall-dialog-buttons",
publishBtn = HTML.mkButton(lf("publish"), () => pub(false, uploadScreenshot ? screenshotDataUri : undefined)),
TheEditor.widgetEnabled('publishAsHidden') ? HTML.mkButton(lf("publish as hidden"), () => pub(true, uploadScreenshot ? screenshotDataUri : undefined)) : undefined,
EditorSettings.widgetEnabled('publishAsHidden') ? HTML.mkButton(lf("publish as hidden"), () => pub(true, uploadScreenshot ? screenshotDataUri : undefined)) : undefined,
HTML.mkButton(lf("cancel"), () => m.dismiss())));
if (TheEditor.widgetEnabled('publishDescription')) {
if (EditorSettings.widgetEnabled('publishDescription')) {
// if different author, allow to create pull request
m.add(div('wall-dialog-buttons', changeDescription));
}
if (TheEditor.widgetEnabled('sendPullRequest') &&
if (EditorSettings.widgetEnabled('sendPullRequest') &&
this.cloudHeader.userId && this.cloudHeader.userId != Cloud.getUserId()) {
m.add(div('wall-dialog-body',
Editor.mkHelpLink('pullrequests', lf("learn about pull requests")),

Просмотреть файл

@ -231,8 +231,8 @@ module TDev
),
this.settingsSection = div("formLine",
this.isLibrary,
TheEditor.widgetEnabled("scriptPropertiesPropertyCloud") ? this.isCloud : null,
TheEditor.widgetEnabled("scriptPropertiesPropertyAllowExport") ? this.allowExport : null),
this.editor.widgetEnabled("scriptPropertiesPropertyCloud") ? this.isCloud : null,
this.editor.widgetEnabled("scriptPropertiesPropertyAllowExport") ? this.allowExport : null),
dbg ? div("formLine",
div("varLabel", lf("under the hood (dbg)")),
HTML.mkButton(lf("test merge"), () => this.mergeWithScript(true)),

Просмотреть файл

@ -598,7 +598,7 @@ module TDev
});
els.push(el);
});
if (TheEditor.widgetEnabled('uploadArtInSearchButton')) {
if (this.editor.widgetEnabled('uploadArtInSearchButton')) {
if (uploadPicBtn) this.removeBtn(uploadPicBtn);
uploadPicBtn = HTML.mkButton(lf("upload picture"), () => {
this.removeBtn(uploadPicBtn);

Просмотреть файл

@ -716,7 +716,7 @@ module TDev
this.selectionBlock instanceof AST.FieldBlock)
&& !(this.selectedStmt instanceof AST.FieldComment)
&& !TheEditor.isDebuggerMode()
&& TheEditor.widgetEnabled("copyPaste");
&& this.editor.widgetEnabled("copyPaste");
}
public setupCodeButtons() : void

Просмотреть файл

@ -185,22 +185,22 @@ module TDev
])
}));
if (!isParent && TheEditor.widgetEnabled("updateButton") &&
if (!isParent && this.editor.widgetEnabled("updateButton") &&
(TheEditor.scriptUpdateId || TheEditor.librariesNeedUpdate()))
addBtn(HTML.mkRoundButton("svg:fa-refresh,black", lf("update"), Ticks.sideUpdate, () => {
this.editor.updateScript();
}));
if (onlyParent && TheEditor.widgetEnabled("logsButton"))
if (onlyParent && this.editor.widgetEnabled("logsButton"))
addBtn(HTML.mkRoundButton("svg:CommandLine,black", lf("logs"), Ticks.sideLogs,() => {
this.editor.showAppLog(app);
}));
if (!isParent && TheEditor.widgetEnabled("errorsButton"))
if (!isParent && this.editor.widgetEnabled("errorsButton"))
addBtn(HTML.mkRoundButton("svg:SmilieSad,black", lf("errors"), Ticks.sideErrors,() => {
this.editor.typeCheckNow();
this.editor.searchFor(":m");
}));
if (onlyParent && TheEditor.widgetEnabled("deployButton")) {
if (onlyParent && this.editor.widgetEnabled("deployButton")) {
addBtn(HTML.mkRoundButton("svg:cloudupload,black", lf("export"), Ticks.sideDeployWebSite,() => {
TDev.RT.App.clearLogs();
var wa = Azure.getWebsiteAuthForApp(app)

Просмотреть файл

@ -1176,7 +1176,7 @@ module TDev
// add tracking pixel to dialog + notice
if (this.hourOfCode)
m.addHTML("<div class='hoc-notice'>The 'Hour of Code™' is a nationwide initiative by Computer Science Education Week and Code.org to introduce millions of students to one hour of computer science and computer programming.</div>");
m.add(div('dialog-beta', Editor.mkBetaNote(), div("tutorialLogo", SVG.getTopLogo())));
m.add(div('dialog-beta', TDev.Browser.EditorSettings.mkBetaNote(), div("tutorialLogo", SVG.getTopLogo())));
if (this.hourOfCode)
m.add(HTML.mkImg('https://code.org/api/hour/begin_touchdevelop.png', 'tracking-pixel'));
m.setScroll();

Просмотреть файл

@ -55,41 +55,6 @@ module TDev {
public agreeTermsOfUseAsync(): Promise {
return RunnerSettings.agreeTermsAsync();
}
public tweakMsg()
{
var webAppId = (<any>window).webAppId || "";
var txt = webAppId && Math.random() < 0.2 ? "tweak this web app on touchdevelop.com" : "find more on touchdevelop.com";
var d = div("copyright-text", txt);
if (SizeMgr.phoneMode)
d.innerHTML = "<span class='beta-underline'>more</span>";
return d.withClick(() => {
var link = (text:string, lnk:string) =>
HTML.mkButton(text,
() => { window.open(Cloud.getServiceUrl() + lnk) });
var m = new ModalDialog();
m.add(div("wall-dialog-header", lf("Create apps at TouchDevelop.com")));
m.addHTML("With TouchDevelop you can create and publish apps. "+
"You can also explore, use and edit apps published by others.");
m.addHTML("TouchDevelop was brought to you by Microsoft Research and runs on " +
"Windows, Windows Phone, Mac, Linux, iPhone, iPad, Android, etc. (and soon your toaster :-)");
if (webAppId) {
m.add(div("wall-dialog-buttons",
link("tweak this web app", "/" + webAppId),
link("explore TouchDevelop", "/app")));
} else {
m.add(div("wall-dialog-buttons",
link("run TouchDevelop now!", "/app")));
}
m.show();
})
}
}
function initEditor() {

Просмотреть файл

@ -190,17 +190,12 @@ module TDev {
!!this.fullScreenContainer.firstChild;
}
public tweakMsg(): HTMLElement {
return div(null);
}
public copyrightElement(): HTMLElement {
// no copyright notice in compiled apps
if (Browser.isCompiledApp && !Browser.webRunner)
return div(null);
var copyrights = div("copyright-text copyright-info");
//var msg = this.tweakMsg();
var logo = div("copyright-text copyright-logo", SVG.getHorizLogo())
//copyrights.style.right = "0";
//logo.style.left = "0";
@ -237,9 +232,9 @@ module TDev {
m.fullWhite();
m.add(div("wall-dialog-header", Util.htmlUnescape(appName)));
m.addHTML("This web app was created" + author + " using TouchDevelop.");
m.addHTML("The TouchDevelop platform - Copyright © 2014 Microsoft Corporation. All rights reserved.");
m.addHTML("<b>DISCLAIMER:</b> This web app is not endorsed by Microsoft.");
m.addHTML(lf("This web app was created {0} using TouchDevelop.", author));
m.addHTML(lf("The TouchDevelop platform - Copyright © 2015 Microsoft Corporation. All rights reserved."));
m.addHTML(lf("<b>DISCLAIMER:</b> This web app is not endorsed by Microsoft."));
if (!Browser.inEditor)
m.add(div("wall-dialog-buttons",
@ -247,8 +242,9 @@ module TDev {
link("try touchdevelop", "")));
m.add(div("wall-dialog-buttons",
link("legal", "/legal"),
link("privacy and cookies", "/privacy")));
link(lf("privacy and cookies"), "/privacy"),
link(lf("legal"), "/legal")
));
m.show();
}