Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
dist/
jupyterlab/lib/visualpython
test/
test/
6 changes: 3 additions & 3 deletions visualpython/css/component/dataSelector.css
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@
}
.vp-ds-data-box {
width: 100%;
height: 150px;
height: 160px;
align-content: baseline;
align-items: center;
}
.vp-ds-type-box,
.vp-ds-variable-box {
border: 0.25px solid var(--border-gray-color);
height: 150px;
height: 160px;
grid-row-gap: 0px;
align-content: baseline;
}
Expand Down Expand Up @@ -90,7 +90,7 @@
margin-top: 10px;
}
.vp-ds-option-inner-box {
height: calc(100% - 35px);
height: calc(100% - 30px);
}
.vp-ds-df-option-box {
height: 100%;
Expand Down
6 changes: 0 additions & 6 deletions visualpython/css/component/multiSelector.css
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,4 @@
left: calc(100% - 25px);
bottom: 23px;
cursor: pointer;
}
.vp-cs-del-item {
position: relative;
float: right;
top: 4px;
cursor: pointer;
}
4 changes: 0 additions & 4 deletions visualpython/css/m_ml/modelInfo.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
.vp-model-select-box {
grid-column-gap: 5px;
align-items: start;
}
.vp-ins-select-title {
font-weight: bold;
color: var(--font-highlight);
Expand Down
4 changes: 2 additions & 2 deletions visualpython/html/component/dataSelector.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<div class="vp-inner-popup-close" title="Close data selector"></div>
</div>
<div class="vp-inner-popup-body vp-scrollbar">
<div class="vp-grid-col-p50 mb5">
<div class="vp-grid-col-p50">
<label class="vp-bold">Type</label>
<label class="vp-bold">Data</label>
</div>
Expand All @@ -22,7 +22,7 @@
</div>
<div class="vp-ds-option-box">
<label class="vp-bold">Option Page</label>
<div class="vp-ds-option-inner-box mt5">
<div class="vp-ds-option-inner-box">

</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion visualpython/html/m_apps/file.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
</td>
</tr>
<tr>
<td><label for="vp_sampleReturn">Allocate to</label></td>
<td><label for="vp_sampleReturn" class="vp-orange-text">Allocate to</label></td>
<td><input type="text" class="vp-input input-single" id="vp_sampleReturn" placeholder="" value="" title=""></td>
</tr>
</tbody>
Expand Down
4 changes: 2 additions & 2 deletions visualpython/js/MainFrame.js
Original file line number Diff line number Diff line change
Expand Up @@ -478,10 +478,10 @@ define([
let parentBlock = null;
let prevBlock = null;
loadStateList.forEach(obj => {
let { file, blockType, menuId, menuState, menuConfig, argIdx, position, afterAction } = obj;
let { blockType, menuId, menuState, menuConfig, argIdx, position, afterAction } = obj;
// get OptionComponent Object
// LAB: relative path needed
let OptionComponent = require('./' + file);
let OptionComponent = require('./' + menuConfig.file);
if (OptionComponent) {
let taskState = menuState.taskState;
let blockState = menuState.blockState;
Expand Down
47 changes: 6 additions & 41 deletions visualpython/js/com/com_Config.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,8 @@ define([
vp_config_version: '1.0.0',
vp_signature: 'VisualPython',
vp_position: {},
vp_section_display: false,
// CHROME: default to display vp
vp_section_display: true,
vp_note_display: false,
vp_menu_width: Config.MENU_MIN_WIDTH,
vp_note_width: Config.BOARD_MIN_WIDTH
Expand Down Expand Up @@ -484,15 +485,15 @@ define([
that._checkMounted().then(function() {
that._readFromColab(configKey).then(function(result) {
let data = result;
if (data == undefined || (data instanceof Object && Object.keys(data).length === 0)) {
if (data == undefined || data == {}) {
resolve(data);
return;
}
if (dataKey == '') {
resolve(data);
return;
}
if (data instanceof Object && Object.keys(data).length > 0) {
if (Object.keys(data).length > 0) {
resolve(data[dataKey]);
return;
}
Expand All @@ -508,15 +509,15 @@ define([
// LAB: use local .visualpython files
that._readFromLab(configKey).then(function(result) {
let data = result;
if (data == undefined || (data instanceof Object && Object.keys(data).length === 0)) {
if (data == undefined || data == {}) {
resolve(data);
return;
}
if (dataKey == '') {
resolve(data);
return;
}
if (data instanceof Object && Object.keys(data).length > 0) {
if (Object.keys(data).length > 0) {
resolve(data[dataKey]);
return;
}
Expand Down Expand Up @@ -778,40 +779,6 @@ define([
return Config.version;
}

checkVersionTimestamp = function() {
let that = this;
// check version timestamp
let nowDate = new Date();
this.getData('version_timestamp', 'vpcfg').then(function(data) {
let doCheckVersion = false;
vpLog.display(VP_LOG_TYPE.DEVELOP, 'Checking its version timestamp... : ' + data);
if (data == undefined || (data instanceof Object && Object.keys(data).length === 0)) {
// no timestamp, check version
doCheckVersion = true;
} else if (data != '') {
let lastCheck = new Date(parseInt(data));
let diffCheck_now = new Date(nowDate.getFullYear(), nowDate.getMonth() + 1, nowDate.getDate());
let diffCheck_last = new Date(lastCheck.getFullYear(), lastCheck.getMonth() + 1, lastCheck.getDate());

let diff = Math.abs(diffCheck_now.getTime() - diffCheck_last.getTime());
diff = Math.ceil(diff / (1000 * 3600 * 24));

if (diff >= 1) {
// if More than 1 day passed, check version
doCheckVersion = true;
}
}

// check version and update version_timestamp
if (doCheckVersion == true) {
that.checkVpVersion(true);
}

}).catch(function(err) {
vpLog.display(VP_LOG_TYPE.ERROR, err);
})
}

checkVpVersion(background=false) {
let that = this;
let nowVersion = this.getVpInstalledVersion();
Expand Down Expand Up @@ -851,8 +818,6 @@ define([
switch (clickedBtnIdx) {
case 0:
// cancel
// update version_timestamp
that.setData({ 'version_timestamp': new Date().getTime() }, 'vpcfg');
break;
case 1:
// update
Expand Down
7 changes: 2 additions & 5 deletions visualpython/js/com/com_generatorV2.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,14 @@ define([
package.options && package.options.forEach(function(o, i) {
var obj = JSON.parse(JSON.stringify(o));
let newTag = vp_createTag(pageThis, obj, state);
if (obj.required === true || obj.output === true) {
if (obj.required) {
tblInput.append(newTag);
} else {
tblOption.append(newTag);
}
});

// TODO: userOption
if (package.code.includes('${etc}')) {

}

bindAutoComponentEvent(pageThis);
}
Expand All @@ -166,7 +163,7 @@ define([
let value = state[name];

var requiredFontStyle = required == true? 'vp-orange-text' : '';
var lblTag = $(`<label class="vp-bold">${label}</label>`).attr({
var lblTag = $(`<label>${label}</label>`).attr({
'for': name,
'class': requiredFontStyle,
'title': '(' + name + ')'
Expand Down
130 changes: 57 additions & 73 deletions visualpython/js/com/component/MultiSelector.js
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ define([
// select - right
tag.appendFormatLine('<div class="{0}">', APP_SELECT_RIGHT);
var selectedList = this.dataList.filter(data => that.selectedList.includes(data.code));
tag.appendLine(this.renderSelectedBox(this.selectedList));
tag.appendLine(this.renderSelectedBox(selectedList));
if (this.allowAdd) {
// add item
tag.appendLine('<input type="text" class="vp-cs-add-item-name vp-input wp100" placeholder="New item to add" value="">');
Expand Down Expand Up @@ -380,6 +380,62 @@ define([
that.bindDraggable();
});

// item indexing
$(this.wrapSelector('.' + APP_SELECT_ITEM)).on('click', function(event) {
var dataIdx = $(this).attr('data-idx');
var idx = $(this).index();
var added = $(this).hasClass('added'); // right side added item?
var selector = '';

// remove selection for select box on the other side
if (added) {
// remove selection for left side
$(that.wrapSelector('.' + APP_SELECT_ITEM + ':not(.added)')).removeClass('selected');
// set selector
selector = '.added';
} else {
// remove selection for right(added) side
$(that.wrapSelector('.' + APP_SELECT_ITEM + '.added')).removeClass('selected');
// set selector
selector = ':not(.added)';
}

if (vpEvent.keyManager.keyCheck.ctrlKey) {
// multi-select
that.pointer = { start: idx, end: -1 };
$(this).toggleClass('selected');
} else if (vpEvent.keyManager.keyCheck.shiftKey) {
// slicing
var startIdx = that.pointer.start;

if (startIdx == -1) {
// no selection
that.pointer = { start: idx, end: -1 };
} else if (startIdx > idx) {
// add selection from idx to startIdx
var tags = $(that.wrapSelector('.' + APP_SELECT_ITEM + selector));
for (var i = idx; i <= startIdx; i++) {
$(tags[i]).addClass('selected');
}
that.pointer = { start: startIdx, end: idx };
} else if (startIdx <= idx) {
// add selection from startIdx to idx
var tags = $(that.wrapSelector('.' + APP_SELECT_ITEM + selector));
for (var i = startIdx; i <= idx; i++) {
$(tags[i]).addClass('selected');
}
that.pointer = { start: startIdx, end: idx };
}
} else {
// single-select
that.pointer = { start: idx, end: -1 };
// un-select others
$(that.wrapSelector('.' + APP_SELECT_ITEM + selector)).removeClass('selected');
// select this
$(this).addClass('selected');
}
});

// item indexing - add all
$(this.wrapSelector('.' + APP_SELECT_ADD_ALL_BTN)).on('click', function(event) {
$(that.wrapSelector('.' + APP_SELECT_BOX + '.left .' + APP_SELECT_ITEM)).appendTo(
Expand Down Expand Up @@ -454,75 +510,6 @@ define([
that._addNewItem(newItemName);
}
});

this._bindItemClickEvent();
}

_bindItemClickEvent() {
let that = this;
// item indexing
$(this.wrapSelector('.' + APP_SELECT_ITEM)).off('click');
$(this.wrapSelector('.' + APP_SELECT_ITEM)).on('click', function(event) {
var dataIdx = $(this).attr('data-idx');
var idx = $(this).index();
var added = $(this).hasClass('added'); // right side added item?
var selector = '';

// remove selection for select box on the other side
if (added) {
// remove selection for left side
$(that.wrapSelector('.' + APP_SELECT_ITEM + ':not(.added)')).removeClass('selected');
// set selector
selector = '.added';
} else {
// remove selection for right(added) side
$(that.wrapSelector('.' + APP_SELECT_ITEM + '.added')).removeClass('selected');
// set selector
selector = ':not(.added)';
}

if (vpEvent.keyManager.keyCheck.ctrlKey) {
// multi-select
that.pointer = { start: idx, end: -1 };
$(this).toggleClass('selected');
} else if (vpEvent.keyManager.keyCheck.shiftKey) {
// slicing
var startIdx = that.pointer.start;

if (startIdx == -1) {
// no selection
that.pointer = { start: idx, end: -1 };
} else if (startIdx > idx) {
// add selection from idx to startIdx
var tags = $(that.wrapSelector('.' + APP_SELECT_ITEM + selector));
for (var i = idx; i <= startIdx; i++) {
$(tags[i]).addClass('selected');
}
that.pointer = { start: startIdx, end: idx };
} else if (startIdx <= idx) {
// add selection from startIdx to idx
var tags = $(that.wrapSelector('.' + APP_SELECT_ITEM + selector));
for (var i = startIdx; i <= idx; i++) {
$(tags[i]).addClass('selected');
}
that.pointer = { start: startIdx, end: idx };
}
} else {
// single-select
that.pointer = { start: idx, end: -1 };
// un-select others
$(that.wrapSelector('.' + APP_SELECT_ITEM + selector)).removeClass('selected');
// select this
$(this).addClass('selected');
}
});

// item deleting (manually added item only)
$(this.wrapSelector('.vp-cs-del-item')).off('click');
$(this.wrapSelector('.vp-cs-del-item')).on('click', function(event) {
$(this).closest('.' + APP_SELECT_ITEM).remove();
that.pointer = { start: -1, end: -1 };
});
}

_addNewItem(newItemName) {
Expand Down Expand Up @@ -564,7 +551,6 @@ define([
let newItemIndex = this.dataList.length;
var targetTag = $(`<div class="${APP_SELECT_ITEM} ${APP_DRAGGABLE} added selected" data-idx="${newItemIndex}" data-name="${newItemName}" data-type="object" data-code="'${newItemName}'" title="${newItemName}: Added manually">
<span>${newItemName}</span>
<div class="vp-cs-del-item vp-icon-close-small" title="Delete this manually added item"></div>
</div>`);
$(targetTag).appendTo(
$(this.wrapSelector('.' + APP_SELECT_BOX + '.right'))
Expand All @@ -574,8 +560,6 @@ define([
$(this.wrapSelector('.' + APP_SELECT_ITEM)).removeClass('selected');
// clear item input
$(this.wrapSelector('.vp-cs-add-item-name')).val('');
// bind click event
this._bindItemClickEvent();
// bind draggable
this.bindDraggable();
}
Expand Down
4 changes: 1 addition & 3 deletions visualpython/js/com/component/PopupComponent.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ define([
this.id = this.state.config.id;
this.name = this.state.config.name;
this.path = this.state.config.path;
this.category = this.state.config.category;


this.config = {
Expand Down Expand Up @@ -531,8 +530,7 @@ define([
template() {
this.$pageDom = $(popupComponentHtml.replaceAll('${vp_base}', com_Const.BASE_PATH));
// set title
// this.$pageDom.find('.vp-popup-title').text(this.category + ' > ' + this.name);
this.$pageDom.find('.vp-popup-title').html(`<span style="color: var(--gray-color);font-size: 12px;">${this.category} > </span><span>${this.name}</span>`);
this.$pageDom.find('.vp-popup-title').text(this.name);
// set body
let bodyTemplate = this.templateForBody();
// CHROME: check url keyword and replace it
Expand Down
Loading