Skip to content

Commit

Permalink
Add "board notification prompt" when a project is loaded
Browse files Browse the repository at this point in the history
  • Loading branch information
Jesus89 committed Feb 12, 2017
1 parent 930d79d commit 65e469a
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 14 deletions.
9 changes: 9 additions & 0 deletions app/scripts/services/boards.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,15 @@ angular.module('icestudio')
return common.selectedBoard.name;
};

this.boardLabel = function(name) {
for (var i in this.currentBoards) {
if (this.currentBoards[i].name === name) {
return this.currentBoards[i].info.label;
}
}
return name;
};

function generateHTMLOptions(pinout, type) {
var code = '<option></option>';
for (var i in pinout) {
Expand Down
11 changes: 7 additions & 4 deletions app/scripts/services/graph.js
Original file line number Diff line number Diff line change
Expand Up @@ -583,16 +583,19 @@ angular.module('icestudio')
};
graph.trigger('board', { data: data });
boardName = boards.selectBoard(boardName);
var cells = graph.getCells();
resetBlocks(cells);
this.resetBlocks();
graph.stopBatch('change');
return boardName;
};

function resetBlocks(cells) {
this.resetBlocks = function() {
var data;
var cells = graph.getCells();
for (var i in cells) {
var cell = cells[i];
if (cell.isLink()) {
break;
}
var type = cell.get('blockType');
if (type === 'basic.input' || type === 'basic.output') {
// Reset choices in all Input / blocks
Expand Down Expand Up @@ -632,7 +635,7 @@ angular.module('icestudio')
paper.findViewByModel(cell.id).updateBox();
}
}
}
};

this.resetCommandStack = function() {
commandManager.reset();
Expand Down
43 changes: 33 additions & 10 deletions app/scripts/services/project.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,22 +92,45 @@ angular.module('icestudio')
};

this.load = function(name, data) {
var self = this;
if (data.version !== common.VERSION) {
alertify.warning(gettextCatalog.getString('Old project format {{version}}', { version: data.version }), 5);
}
project = _safeLoad(data, name);
common.allDependencies = project.dependencies;
var ret = graph.loadDesign(project.design, false, function() {
graph.resetCommandStack();
alertify.success(gettextCatalog.getString('Project {{name}} loaded', { name: utils.bold(name) }));
});

if (ret) {
profile.data.board = boards.selectBoard(project.design.board);
this.updateTitle(name);
if (project.design.board !== common.selectedBoard.name) {
var projectBoard = boards.boardLabel(project.design.board);
alertify.confirm(
gettextCatalog.getString('This project is designed for the {{name}} board.', { name: utils.bold(projectBoard) }) + '<br>' +
gettextCatalog.getString('Do you want to convert it?'),
function() {
project.design.board = common.selectedBoard.name;
_load(true);
},
function() {
_load();
});
}
else {
alertify.error(gettextCatalog.getString('Wrong project format: {{name}}', { name: utils.bold(name) }), 30);
_load();
}

function _load(reset) {
common.allDependencies = project.dependencies;
var ret = graph.loadDesign(project.design, false, function() {
if (reset) {
graph.resetBlocks();
}
graph.resetCommandStack();
alertify.success(gettextCatalog.getString('Project {{name}} loaded', { name: utils.bold(name) }));
});

if (ret) {
profile.data.board = boards.selectBoard(project.design.board);
self.updateTitle(name);
}
else {
alertify.error(gettextCatalog.getString('Wrong project format: {{name}}', { name: utils.bold(name) }), 30);
}
}
};

Expand Down

0 comments on commit 65e469a

Please sign in to comment.