move cloud menu and add reset password link

pull/29/head
Michael Aschauer 2017-05-21 18:03:12 +02:00
rodzic 343e2cced1
commit 66e5dc2112
2 zmienionych plików z 138 dodań i 27 usunięć

Wyświetl plik

@ -370,29 +370,6 @@ IDE_Morph.prototype.createControlBar = function () {
this.controlBar.add(settingsButton);
this.controlBar.settingsButton = settingsButton; // for menu positioning
// cloudButton
button = new PushButtonMorph(
this,
'cloudMenu',
new SymbolMorph('cloud', 11)
);
button.corner = 12;
button.color = colors[0];
button.highlightColor = colors[1];
button.pressColor = colors[2];
button.labelMinExtent = new Point(36, 18);
button.padding = 0;
button.labelShadowOffset = new Point(-1, -1);
button.labelShadowColor = colors[1];
button.labelColor = this.buttonLabelColor;
button.contrast = this.buttonContrast;
button.drawNew();
// button.hint = 'cloud operations';
button.fixLayout();
cloudButton = button;
this.controlBar.add(cloudButton);
this.controlBar.cloudButton = cloudButton; // for menu positioning
this.controlBar.fixLayout = function () {
x = this.right() - padding;
[stopButton, pauseButton, startButton].forEach(
@ -424,11 +401,8 @@ IDE_Morph.prototype.createControlBar = function () {
settingsButton.setCenter(myself.controlBar.center());
settingsButton.setLeft(this.left());
cloudButton.setCenter(myself.controlBar.center());
cloudButton.setRight(settingsButton.left() - padding);
projectButton.setCenter(myself.controlBar.center());
projectButton.setRight(cloudButton.left() - padding);
projectButton.setRight(settingsButton.left() - padding);
this.refreshSlider();
this.updateLabel();
@ -1589,6 +1563,131 @@ IDE_Morph.prototype.projectMenu = function () {
},
'Select categories of additional blocks to add to this project.'
);
menu.addLine();
if (shiftClicked) {
menu.addItem(
'Cloud url...',
'setCloudURL',
null,
new Color(100, 0, 0)
);
menu.addLine();
}
if (!SnapCloud.username) {
menu.addItem(
'Login',
function () { window.open('/login'); }
);
menu.addItem(
'Create an account',
function () { window.open('/signup'); }
);
menu.addItem(
'Reset Password...',
function () { window.open('/forgot_password'); }
);
} else {
menu.addItem(
localize('Logout') + ' / ' + SnapCloud.username,
'logout'
);
}
if (shiftClicked) {
menu.addLine();
menu.addItem(
'export project media only...',
function () {
if (myself.projectName) {
myself.exportProjectMedia(myself.projectName);
} else {
myself.prompt('Export Project As...', function (name) {
myself.exportProjectMedia(name);
}, null, 'exportProject');
}
},
null,
this.hasChangedMedia ? new Color(100, 0, 0) : new Color(0, 100, 0)
);
menu.addItem(
'export project without media...',
function () {
if (myself.projectName) {
myself.exportProjectNoMedia(myself.projectName);
} else {
myself.prompt('Export Project As...', function (name) {
myself.exportProjectNoMedia(name);
}, null, 'exportProject');
}
},
null,
new Color(100, 0, 0)
);
menu.addItem(
'export project as cloud data...',
function () {
if (myself.projectName) {
myself.exportProjectAsCloudData(myself.projectName);
} else {
myself.prompt('Export Project As...', function (name) {
myself.exportProjectAsCloudData(name);
}, null, 'exportProject');
}
},
null,
new Color(100, 0, 0)
);
menu.addLine();
menu.addItem(
'open shared project from cloud...',
function () {
myself.prompt('Author name…', function (usr) {
myself.prompt('Project name...', function (prj) {
var id = 'Username=' +
encodeURIComponent(usr.toLowerCase()) +
'&ProjectName=' +
encodeURIComponent(prj);
myself.showMessage(
'Fetching project\nfrom the cloud...'
);
SnapCloud.getPublicProject(
id,
function (projectData) {
var msg;
if (!Process.prototype.isCatchingErrors) {
window.open(
'data:text/xml,' + projectData
);
}
myself.nextSteps([
function () {
msg = myself.showMessage(
'Opening project...'
);
},
function () {nop(); }, // yield (Chrome)
function () {
myself.rawOpenCloudDataString(
projectData
);
},
function () {
msg.destroy();
}
]);
},
myself.cloudError()
);
}, null, 'project');
}, null, 'project');
},
null,
new Color(100, 0, 0)
);
}
menu.popup(world, pos);
};

Wyświetl plik

@ -1024,7 +1024,19 @@ ProjectDialogMorph.prototype.rawOpenCloudProject = function (proj) {
};
// gui.js
IDE_Morph.prototype.cloudMenu = function () {
var menu,
myself = this,
world = this.world(),
pos = this.controlBar.cloudButton.bottomLeft(),
shiftClicked = (world.currentKey === 16);
menu = new MenuMorph(this);
menu.popup(world, pos);
};
// store.js