From df6f91a1690fd615caa62a60be8ed771f31c2ff2 Mon Sep 17 00:00:00 2001 From: minjk-bl Date: Mon, 30 Aug 2021 14:03:13 +0900 Subject: [PATCH 1/6] small fix --- css/common/subsetEditor.css | 2 +- src/api_block/blockContainer.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/css/common/subsetEditor.css b/css/common/subsetEditor.css index 57373815..1a1450ba 100644 --- a/css/common/subsetEditor.css +++ b/css/common/subsetEditor.css @@ -318,7 +318,7 @@ } .vp-ds-btn-apply { position: absolute; - top: 4px; + top: 9px; right: 15px; } .vp-ds-btn-run { diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js index d8c95a84..9e6d75d0 100644 --- a/src/api_block/blockContainer.js +++ b/src/api_block/blockContainer.js @@ -664,7 +664,7 @@ define([ this.resetOptionPage(); - this.setFocusedPageType(FOCUSED_PAGE_TYPE.EDITOR); + this.setFocusedPageType(FOCUSED_PAGE_TYPE.BOARD); this.reNewContainerDom(); this.reRenderAllBlock_asc(); } From 28212e38eb0837260b27d3773ce713b67a719d2f Mon Sep 17 00:00:00 2001 From: minjk-bl Date: Mon, 30 Aug 2021 15:12:07 +0900 Subject: [PATCH 2/6] small style change --- css/common/frameEditor.css | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/css/common/frameEditor.css b/css/common/frameEditor.css index a8bad057..fb3f5cc1 100644 --- a/css/common/frameEditor.css +++ b/css/common/frameEditor.css @@ -358,16 +358,19 @@ .vp-popup-addpage .vp-popup-tab.replace { height: calc(100% - 50px); } -.vp-popup-addtype{ +.vp-popup-addtype { width: 153px; margin-top: 5px; } -.vp-popup-delete{ +.vp-popup-delete { padding-bottom: 20px; } -.vp-popup-replace-add{ +.vp-popup-replace-add { margin-top: 30px } -.vp_popup-apply{ - margin-left: 30px; +.vp-popup-apply-column { + width: 153px; +} +.vp-popup-apply-lambda{ + margin-top: 5px; } \ No newline at end of file From 5b0e30526736e59da9da4dfdec3d9445e34c1434 Mon Sep 17 00:00:00 2001 From: minjk-bl Date: Mon, 30 Aug 2021 15:50:20 +0900 Subject: [PATCH 3/6] add default snippets --- src/file_io/udf.js | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/file_io/udf.js b/src/file_io/udf.js index d403523e..b2881a9f 100644 --- a/src/file_io/udf.js +++ b/src/file_io/udf.js @@ -203,8 +203,44 @@ define([ } else if (menu == 'default-snippets') { // import default snippets var defaultSnippets = { - 'default import': 'import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n%matplotlib inline\nimport seaborn as sns' + 'default import': [ + 'import numpy as np', + 'import pandas as pd', + 'import matplotlib.pyplot as plt', + '%matplotlib inline', + 'import seaborn as sns', + 'import plotly.express as px' + ], + 'as_float': [ + 'def as_float(x):', + ' """', + " usage: df['col'] = df['col'].apply(as_float)", + ' """', + ' if not isinstance(x, str):', + ' return 0.0', + ' else:', + ' try:', + ' result = float(x)', + ' return result', + ' except ValueError:', + ' return 0.0' + ], + 'as_int': [ + 'def as_int(x):', + ' """', + " usage: df['col'] = df['col'].apply(as_int)", + ' """', + ' if not isinstance(x, str):', + ' return 0', + ' else:', + ' try:', + ' result = int(x)', + ' return result', + ' except ValueError:', + ' return 0.0' + ] } + var timestamp = new Date().getTime(); var keys = Object.keys(defaultSnippets); @@ -218,7 +254,8 @@ define([ importKey = key + '_imported' + importNo; importNo += 1; } - var newSnippet = { [importKey]: { code: defaultSnippets[key], timestamp: timestamp } }; + var code = defaultSnippets[key].join('\n'); + var newSnippet = { [importKey]: { code: code, timestamp: timestamp } }; vpSetting.saveUserDefinedCode(newSnippet); importKeys.push(importKey); From c6ad132c05b1e736a971c4c376cc4823f8cfe24d Mon Sep 17 00:00:00 2001 From: minjk-bl Date: Mon, 30 Aug 2021 15:50:52 +0900 Subject: [PATCH 4/6] change confirm popup's default button --- src/api_block/blockContainer.js | 2 +- src/api_block/component/boardMenuBar.js | 4 ++-- src/api_block/init.js | 2 +- src/common/vpFuncJS.js | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js index 9e6d75d0..686c6c5b 100644 --- a/src/api_block/blockContainer.js +++ b/src/api_block/blockContainer.js @@ -1124,7 +1124,7 @@ define([ if (prevSelectedBlock && prevSelectedBlock.isModified) { // Ask to save var apiBlockPackage = this.getImportPackageThis(); - apiBlockPackage.openMultiBtnModal_new('Unsaved Changes', 'Save changes before leave?',['Don’t save', 'Save'], [() => { + apiBlockPackage.openMultiBtnModal_new('Unsaved Changes', 'Save changes before leave?',['Don’t save', 'Save'], 2, [() => { // cancel // $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_CANCEL_BUTTON).trigger(STR_CLICK); blockContainerThis.cancelBlock(); diff --git a/src/api_block/component/boardMenuBar.js b/src/api_block/component/boardMenuBar.js index b44f803b..6e728a64 100644 --- a/src/api_block/component/boardMenuBar.js +++ b/src/api_block/component/boardMenuBar.js @@ -111,7 +111,7 @@ define([ var saveFilePath = vpCommon.formatString("./{0}.{1}", saveFileName, vpConst.VP_NOTE_EXTENSION); var apiBlockPackage = blockContainer.getImportPackageThis(); - apiBlockPackage.openMultiBtnModal_new('Save As', `Save changes to '${saveFileName}.vp'`,['Yes', 'No', 'Cancel'], [() => { + apiBlockPackage.openMultiBtnModal_new('Save As', `Save changes to '${saveFileName}.vp'`,['Yes', 'No', 'Cancel'], 3, [() => { saveNotePageAction_newVersion(vpCommon.formatString("{0}.{1}", saveFileName, vpConst.VP_NOTE_EXTENSION), saveFilePath); blockContainer.deleteAllBlock(); @@ -161,7 +161,7 @@ define([ var saveFilePath = $(vpCommon.wrapSelector(vpCommon.formatString("#{0}", vpConst.VP_NOTE_REAL_FILE_PATH))).val(); var apiBlockPackage = blockContainer.getImportPackageThis(); - apiBlockPackage.openMultiBtnModal_new('Save As', `Save changes to '${saveFileName}.vp'`,['Yes', 'No', 'Cancel'], [() => { + apiBlockPackage.openMultiBtnModal_new('Save As', `Save changes to '${saveFileName}.vp'`,['Yes', 'No', 'Cancel'], 3, [() => { if (saveFilePath == '') { saveAsNotePage(); } else { diff --git a/src/api_block/init.js b/src/api_block/init.js index 4d641015..2fbf3053 100644 --- a/src/api_block/init.js +++ b/src/api_block/init.js @@ -812,7 +812,7 @@ define([ /** File navigation을 open하지 않고 alert창 띄움*/ } else { var saveFilePath = vpCommon.formatString("./{0}.{1}", saveFileName, vpConst.VP_NOTE_EXTENSION); - apiBlockPackage.openMultiBtnModal_new('Save As', `Save changes to '${saveFileName}.vp'`,['Yes','No', 'Cancel'], [() => { + apiBlockPackage.openMultiBtnModal_new('Save As', `Save changes to '${saveFileName}.vp'`,['Yes', 'No', 'Cancel'], 3, [() => { saveNotePageAction_newVersion(saveFileName, saveFilePath); openNotePage(); diff --git a/src/common/vpFuncJS.js b/src/common/vpFuncJS.js index 30e15d47..2daf9df1 100644 --- a/src/common/vpFuncJS.js +++ b/src/common/vpFuncJS.js @@ -415,8 +415,8 @@ define([ * @param {Array} buttons 버튼 캡션 * @param {Array} callback 선택 콜백 함수 */ - VpFuncJS.prototype.openMultiBtnModal_new = function(message = "", submessage, buttons = new Array(), callbackList) { - var mbmModal = new vpMultiButtonModal_new.vpMultiButtonModal(message, submessage, buttons); + VpFuncJS.prototype.openMultiBtnModal_new = function(message = "", submessage, buttons = new Array(), defaultButtonIdx, callbackList) { + var mbmModal = new vpMultiButtonModal_new.vpMultiButtonModal(message, submessage, buttons, defaultButtonIdx); mbmModal.openModal(callbackList); } return {'VpFuncJS': VpFuncJS}; From 60a11c7ec5eca6e1e9e144c4943e73e0fc553447 Mon Sep 17 00:00:00 2001 From: minjk-bl Date: Mon, 30 Aug 2021 16:03:40 +0900 Subject: [PATCH 5/6] fix vpnote page link --- src/common/constant.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/constant.js b/src/common/constant.js index 6e186249..03036883 100644 --- a/src/common/constant.js +++ b/src/common/constant.js @@ -199,7 +199,7 @@ define ([ /** * faq page link */ - const VPNOTE_PAGE_LINK = 'https://visualpython.ai/vpnote'; + const VPNOTE_PAGE_LINK = 'https://visualpython.ai/vpnotes'; /** * header extra menu faq caption From a31d3458feb8e704c0c3c0fc7ba29445a1c201c6 Mon Sep 17 00:00:00 2001 From: minjk-bl Date: Mon, 30 Aug 2021 16:40:54 +0900 Subject: [PATCH 6/6] subset auto checking for categorical value --- src/common/vpSubsetEditor.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/common/vpSubsetEditor.js b/src/common/vpSubsetEditor.js index cd92ec90..8b2f1fae 100644 --- a/src/common/vpSubsetEditor.js +++ b/src/common/vpSubsetEditor.js @@ -1760,6 +1760,7 @@ define([ }); $(document).on('change', this.wrapSelector('.vp-ds-cond-tbl .vp-col-list'), function() { + var thisTag = $(this); var varName = $(this).closest('td').find('.vp-cond-var').val(); var colName = $(this).find('option:selected').attr('data-code'); @@ -1769,6 +1770,12 @@ define([ // get result and load column list kernelApi.executePython(code, function(result) { var category = JSON.parse(result); + if (category && category.length > 0) { + // if it's categorical column, check 'Text' as default + $(thisTag).closest('td').find('.vp-cond-use-text').prop('checked', true); + } else { + $(thisTag).closest('td').find('.vp-cond-use-text').prop('checked', false); + } $(condTag).replaceWith(function() { return that.renderConditionCondInput(category); });