clean up widgets in hub
This commit is contained in:
Родитель
6a3f8db39a
Коммит
ead67b1981
178
editor/editor.ts
178
editor/editor.ts
|
@ -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> " : "") +
|
||||
"<span class='beta-underline'>privacy and cookies</span> <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);
|
||||
|
|
172
editor/hub.ts
172
editor/hub.ts
|
@ -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> " : "") +
|
||||
"<span class='beta-underline'>privacy and cookies</span> <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();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче