Skip to content

Commit 9889adb

Browse files
committed
update simulator
1 parent 6ac37c6 commit 9889adb

14 files changed

Lines changed: 202 additions & 114 deletions

File tree

components/simulator/.bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@
2626
"defiant": "defiant-js#^1.4.0",
2727
"webduino-js": "dist"
2828
},
29-
"_release": "43a3239365",
29+
"_release": "af9d82be4d",
3030
"_resolution": {
3131
"type": "branch",
3232
"branch": "blockly",
33-
"commit": "43a32393651ebdcbff0b33bc99d4cdb234573793"
33+
"commit": "af9d82be4d843a63a546fb51a9efb4ec7a209006"
3434
},
3535
"_source": "https://git.kingkit.codes/webduino/simulator.git",
3636
"_target": "blockly",

components/simulator/css/less/index.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ body {
5252
}
5353
}
5454

55+
body.initialize {
56+
opacity: 0;
57+
}
58+
5559
svg {
5660
width: 100%;
5761
height: 100%;

components/simulator/dist/css/bundle-20170329164005.css renamed to components/simulator/dist/css/bundle-20170404205940.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/simulator/dist/css/index.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/simulator/dist/css/less/index.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ body {
5252
}
5353
}
5454

55+
body.initialize {
56+
opacity: 0;
57+
}
58+
5559
svg {
5660
width: 100%;
5761
height: 100%;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" href="webduino.ico" type="image/x-icon"> <link rel="stylesheet" type="text/css" href="components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="css/bundle-20170329164005.css"> </head> <body> <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand"> <i class="glyphicon glyphicon-hand-up"></i> <span data-i18n="navbar.brand"></span> </a> </div> <div id="navbar" class="navbar-collapse collapse"> <div class="navbar-left"> <button type="button" class="btn btn-default navbar-btn" v-on:click="historyBack" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.preStep"> <i class="glyphicon glyphicon-chevron-left"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="historyForward" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.nextStep"> <i class="glyphicon glyphicon-chevron-right"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="deleteSomething" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.remove"> <i class="glyphicon glyphicon-remove"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="zoomToFit" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.zoomToFit"> <i class="glyphicon glyphicon-screenshot"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="refresh" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.removeAll"> <i class="glyphicon glyphicon-trash"></i> </button> <button type="button" class="btn btn-default navbar-btn" id="menu-toggle" v-on:click="menuToggle" :disabled="isPlaying" data-i18n="navbar.components"></button> </div> <div class="navbar-right margin-fixed hidden"> <select id="lang" class="selectpicker hidden" data-container="body" data-width="auto"> <option value="en" data-i18n="language.en"></option> <option value="zh-tw" data-i18n="language.zh-tw"></option> <option value="zh-cn" data-i18n="language.zh-cn"></option> </select> <button type="button" class="btn btn-default navbar-btn hidden" :class="{ play: isPlaying, stop: !isPlaying }" v-on:click="engineToggle"> <i class="glyphicon glyphicon-play" v-show="!isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.start"></i> <i class="glyphicon glyphicon-stop" v-show="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.stop"></i> </button> </div> </div> </div> </nav> <div id="wrapper" v-bind:class="{ toggled: isComponentsVisible, dragging: dragging }"> <div id="sidebar"> <div class="container-fluid"> <div class="row components-container" v-html="components"></div> </div> </div> </div> <div class="container-fluid"> <svg id="editArea"> <g class="zoom-container"> <g class="components-area"></g> <g class="path-container"></g> <g class="edit-content"></g> </g> </svg> </div> <div id="myModal" class="modal fade"> <div class="modal-dialog modal-sm" v-on:keydown.stop v-on:keyup.stop v-on:keydown.enter.prevent> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only" data-i18n="propertyModal.close"></span></button> <h4 class="modal-title" data-i18n="propertyModal.title"></h4> </div> <div class="modal-body"> <form role="form"> <div class="form-group"> <label for="property-deviceId" class="control-label" data-i18n="propertyModal.deviceId"></label> <input type="text" class="form-control" id="property-deviceId" v-model="deviceId" v-on:keydown.enter="save" autofocus> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal" data-i18n="propertyModal.close"></button> <button type="button" class="btn btn-primary" v-on:click="save" data-i18n="propertyModal.save">Save changes</button> </div> </div> </div> </div> <div id="app"></div> <script src="js/bundle-20170329164005.js"></script> </body>
1+
<!DOCTYPE html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" href="webduino.ico" type="image/x-icon"> <link rel="stylesheet" type="text/css" href="components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="css/bundle-20170404205940.css"> </head> <body class="initialize"> <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand"> <i class="glyphicon glyphicon-hand-up"></i> <span data-i18n="navbar.brand"></span> </a> </div> <div id="navbar" class="navbar-collapse collapse"> <div class="navbar-left"> <button type="button" class="btn btn-default navbar-btn" v-on:click="historyBack" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.preStep"> <i class="glyphicon glyphicon-chevron-left"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="historyForward" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.nextStep"> <i class="glyphicon glyphicon-chevron-right"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="deleteSomething" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.remove"> <i class="glyphicon glyphicon-remove"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="zoomToFit" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.zoomToFit"> <i class="glyphicon glyphicon-screenshot"></i> </button> <button type="button" class="btn btn-default navbar-btn" v-on:click="refresh" :disabled="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.removeAll"> <i class="glyphicon glyphicon-trash"></i> </button> <button type="button" class="btn btn-default navbar-btn" id="menu-toggle" v-on:click="menuToggle" :disabled="isPlaying" data-i18n="navbar.components"></button> </div> <div class="navbar-right margin-fixed hidden"> <select id="lang" class="selectpicker hidden" data-container="body" data-width="auto"> <option value="en" data-i18n="language.en"></option> <option value="zh-tw" data-i18n="language.zh-tw"></option> <option value="zh-cn" data-i18n="language.zh-cn"></option> </select> <button type="button" class="btn btn-default navbar-btn hidden" :class="{ play: isPlaying, stop: !isPlaying }" v-on:click="engineToggle"> <i class="glyphicon glyphicon-play" v-show="!isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.start"></i> <i class="glyphicon glyphicon-stop" v-show="isPlaying" data-toggle="tooltip" data-placement="bottom" data-i18n="[data-myTitle]navbar.stop"></i> </button> </div> </div> </div> </nav> <div id="wrapper" v-bind:class="{ toggled: isComponentsVisible, dragging: dragging }"> <div id="sidebar"> <div class="container-fluid"> <div class="row components-container" v-html="components"></div> </div> </div> </div> <div class="container-fluid"> <svg id="editArea"> <g class="zoom-container"> <g class="components-area"></g> <g class="path-container"></g> <g class="edit-content"></g> </g> </svg> </div> <div id="myModal" class="modal fade"> <div class="modal-dialog modal-sm" v-on:keydown.stop v-on:keyup.stop v-on:keydown.enter.prevent> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only" data-i18n="propertyModal.close"></span></button> <h4 class="modal-title" data-i18n="propertyModal.title"></h4> </div> <div class="modal-body"> <form role="form"> <div class="form-group"> <label for="property-deviceId" class="control-label" data-i18n="propertyModal.deviceId"></label> <input type="text" class="form-control" id="property-deviceId" v-model="deviceId" v-on:keydown.enter="save" autofocus> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal" data-i18n="propertyModal.close"></button> <button type="button" class="btn btn-primary" v-on:click="save" data-i18n="propertyModal.save">Save changes</button> </div> </div> </div> </div> <div id="app"></div> <script src="js/bundle-20170404205940.js"></script> </body>

components/simulator/dist/js/bundle-20170329164005.js renamed to components/simulator/dist/js/bundle-20170404205940.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/simulator/dist/js/index.js

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,14 @@
8383
});
8484

8585
app.$watch('language', function (newVal, oldVal) {
86-
var $lang = $('#lang');
8786

88-
if (oldVal.length > 0) {
89-
i18next.changeLanguage(newVal, function (err, t) {
90-
$('body').localize();
91-
});
92-
} else {
93-
// 第一次更新值
94-
$lang.selectpicker('refresh');
95-
$lang.selectpicker('val', this.language);
87+
if (!oldVal) {
88+
return;
9689
}
90+
91+
i18next.changeLanguage(newVal, function (err, t) {
92+
$('body').localize();
93+
});
9794
});
9895

9996

@@ -240,7 +237,9 @@
240237
},
241238
debug: false
242239
}, function (err, t) {
240+
243241
addComponents();
242+
244243
jqueryI18next.init(i18next, $);
245244
$('body').localize();
246245

@@ -252,15 +251,15 @@
252251
}
253252
});
254253

254+
document.body.classList.remove('initialize');
255255
app.language = i18next.language;
256256
app.i18nextReady = true;
257+
utils.event.trigger('language-init', i18next.language);
257258
});
258259
}
259260

260261
function sinkEvent() {
261262
var $body = $('body');
262-
var $lang = $('#lang');
263-
var d3Body = d3.select('body');
264263

265264
// device id 的輸入
266265
// 待有屬性面板時,刪除
@@ -317,39 +316,38 @@
317316
}
318317
}
319318
});
320-
321-
$lang.on('changed.bs.select', function (evt) {
322-
app.language = this.value;
319+
320+
utils.event.on('language-changed', function (val) {
321+
app.language = val;
323322
});
324-
325-
d3Body.on('navbar-dragStart', function () {
323+
324+
utils.event.on('navbar-dragStart', function () {
326325
app.selectId = '';
327326
app.editPathId = '';
328327
});
329328

330-
d3Body.on('navbar-dragEnd', function () {
331-
var detail = d3.event.detail;
332-
app.selectId = detail.targetId;
333-
sortComponent(detail.targetId);
329+
utils.event.on('navbar-dragEnd', function (data) {
330+
app.selectId = data.targetId;
331+
sortComponent(data.targetId);
334332
addHistory();
335333
});
336334

337-
d3Body.on('navbar-deleteSomething', function () {
335+
utils.event.on('navbar-deleteSomething', function () {
338336
deleteSomething();
339337
addHistory();
340338
});
341339

342-
d3Body.on('navbar-historyBack', function () {
340+
utils.event.on('navbar-historyBack', function () {
343341
hm.back();
344342
utils.importLayout(hm.getActive());
345343
});
346344

347-
d3Body.on('navbar-historyForward', function () {
345+
utils.event.on('navbar-historyForward', function () {
348346
hm.forward();
349347
utils.importLayout(hm.getActive());
350348
});
351349

352-
d3Body.on('navbar-engineStart', function () {
350+
utils.event.on('navbar-engineStart', function () {
353351
app.instance.forEach(function (inst) {
354352
inst.destroy();
355353
});
@@ -358,31 +356,25 @@
358356
app.selectId = '';
359357
app.engineStarting = true;
360358
interact.start();
361-
362-
$lang.prop('disabled', true);
363-
$lang.selectpicker('refresh');
364359
});
365360

366-
d3Body.on('navbar-engineStop', function () {
361+
utils.event.on('navbar-engineStop', function () {
367362
drawPath();
368363
dndComponent();
369364
editPath2();
370365
app.engineStarting = false;
371366
interact.stop();
372-
373-
$lang.prop('disabled', false);
374-
$lang.selectpicker('refresh');
375367
});
376368

377-
d3Body.on('navbar-refresh', function () {
369+
utils.event.on('navbar-refresh', function () {
378370
var layout = utils.exportLayout();
379371
layout.data.components = [];
380372
layout.data.paths = [];
381373
utils.importLayout(layout);
382374
addHistory();
383375
});
384-
385-
d3Body.on('navbar-zoomToFit', function () {
376+
377+
utils.event.on('navbar-zoomToFit', function () {
386378
zoomInst.zoomToFit();
387379
});
388380

0 commit comments

Comments
 (0)