diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..55fe0f74
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,35 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: "[BUG] "
+labels: bug
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**VisualPython Information (please complete the following information):**
+ - Version [e.g. 1.1.0]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000..11fc491e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: enhancement
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/simple-devops-issues.md b/.github/ISSUE_TEMPLATE/simple-devops-issues.md
new file mode 100644
index 00000000..679a663b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/simple-devops-issues.md
@@ -0,0 +1,17 @@
+---
+name: simple devops issues
+about: issues with simple changes
+title: ''
+labels: small change
+assignees: minjk-bl
+
+---
+
+### TO-BE
+1.
+
+
+--------------------------------
+
+### AS-IS (Optional)
+1.
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..2e53b18f
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,128 @@
+# Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+hello@visualpython.ai.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
diff --git a/README.md b/README.md
index 934764c3..f54789cd 100644
--- a/README.md
+++ b/README.md
@@ -1,78 +1,112 @@
-# 1. Install Package ( windows / Linux / Mac )
-### 1.1. requirements
-> - Python 3.x
-> - jupyter notebook or anaconda env
-> _pip install jupyter_
-> or
-> _python -m pip install --user jupyter_
->
-> _pip3 install jupyter_
-> or
-> _python3 -m pip install --user jupyter_
-
-### 1.2. Install VisualPython package
-> **[pip / conda]**
-> _pip install visualpython_
-
-### 1.3. Optional package
-* jupyter_contrib_nbextensions
-* Install to manage nbtextensions visually.
->> **[pip]**
->> _pip install jupyter_contrib_nbextensions
_
- _jupyter contrib nbextension install --user_
->> **[conda - anaconda env]**
-> _conda install -c conda-forge jupyter_contrib_nbextensions_
- _jupyter contrib nbextension install --user_
-
-# 2. Package controller for Linux/Mac/Windows
-### 2.1. VisualPython contoller info
-
-> **usage: _visualpy [option]_**
+# Visual Python
+[](https://pypi.python.org/pypi/visualpython/)
+[](https://www.gnu.org/licenses/gpl-3.0.html)
+[](https://www.visualpython.ai)
+
+
+
+
+## Introduction
+Visual Python is a GUI-based Python code generator, developed on the Jupyter Notebook environment as an extension.
+
+
+1. Key Features
+* Automatically generates Python code based on a graphic user interface
+* Creates code blocks by tasks (such as data processing, visualization)
+* You can save the analysis process and share it (as .vp file) with others
+
+2. Who and What is it for?
+Visual Python is a data analytics solution for both Programmers & Non-programmers.
+
+Programmers can use the tool :
+* to save & reuse user-defined (or repeatedly used) code
+* to find Python packages and functions from the list
+
+Non-programmers will be able to :
+* learn the Python language more easily
+* manage big data with minimal coding skills
+
+
+
+## Getting Started
+
+### 1. Requirements
+
+Visual Python is developed as an extension on Jupyter Notebook.
+We recommend installing Anaconda (virtual environment).
+
+- Python version 3.x
+- Jupyter notebook or Anaconda env
+
+### 2. How to Install
+
+**1) Open Anaconda prompt**
+
+* Windows : Click Start > Search or Select 'Anaconda Prompt'
+* Mac : Open Launchpad > Select 'Terminal'
+
+**2) Install package from**
+```
+pip install visualpython
+```
+
+
+Depending on your virtual environment settings, you may need to install Jupyter Extensions.
+To install Jupyter Extension, use commands either:
```
- optional arguments:
- -h, help - show this help message and exit
- -e, enable - enable VisualPython
- -d, disable - disable VisualPython
- -i, install - install VisualPython extensions
- -un, uninstall - uninstall VisualPython packages
- -up, upgrade - upgrade VisualPython Package
- -v, version - show VisualPython current version
+pip install jupyter_contrib_nbextensions
```
+or
+```
+conda install -c conda-forge jupyter_contrib_nbextensions
+```
+
+**3) Enable the package**
+```
+visualpy install
+```
+
+**4) Activate Visual Python on Jupyter Notebook**
+
+Click orange square button on the right side of the Jupyter Notebook menu.
+
+### 3. Package Control Info
+* Usage: visualpy **[option]**
+* Optional arguments:
+
+```
+help - show help menu
+uninstall - uninstall packages
+upgrade - version upgrade
+version - version check
+```
+
+
+## Mission & Vision
+
+
+**Mission**
+To support technology and education so that anyone can leverage big data analytics to create a variety of social values.
+
+**Vision**
+To create an environment where you can learn and use big data analytics skills easily.
+
+
+
+
+## License
-### 2.2. Activate VisualPython
-> _visualpy install_
-> or
-> _visualpy -i_
-
-### 2.3. Disable VisualPython
-> _visualpy disable_
-> or
-> _visualpy -d_
-
-### 2.4. Enable VisualPython extension
-> _visualpy enable_
-> or
-> _visualpy -e_
-
-### 2.5. Upgrade VisualPython package version
-> _visualpy upgrade_
-> or
-> _visualpy -up_
-
-### 2.6. Uninstall VisualPython package
-> _visualpy uninstall_
-> or
-> _visualpy -un_
+GNU GPLv3 (See LICENSE file).
diff --git a/bin/visualpy.bat b/bin/visualpy.bat
index 651ecb95..79bfa0d8 100644
--- a/bin/visualpy.bat
+++ b/bin/visualpy.bat
@@ -1,250 +1,250 @@
-@echo off
-SetLocal
-rem #==========================================================================
-rem # Filename : visualpy.bat
-rem # function : control Visual Python for windows
-rem # Creator : BlackLogic - LJ
-rem # version : 2.1
-rem # License : GPLv3
-rem # Date : 2020 07.30
-rem # MDate : 2020 12.29
-rem #==========================================================================
-
-rem ## setting variables
-
-set v_prod=visualpython
-(echo "%v_prod%" & echo.) | findstr /O . | more +1 | (set /P RESULT= & call exit /B %%RESULT%%)
-set /A v_prd_length=%ERRORLEVEL%-5
-set v_option=%1
-for /f "delims=, tokens=1*" %%i in ('pip show %v_prod% 2^>^&1 ^| find "Location"') do (
-set v_1=%%i)
-set v_path1=%v_1:~10%
-set v_str1=jupyter nbextension
-set v_str2=%v_prod%/src/main
-set v_srch=pip search %v_prod%
-set v_upgr=pip install %v_prod% --upgrade
-set v_unst=pip uninstall %v_prod%
-set v_ckup=pip list -o
-set v_show=pip show %v_prod%
-
-rem check env & setting path2
-where /q conda-env
-IF ERRORLEVEL 1 (
- call :l_prt_be_line
- ECHO Not a conda env.
- set v_path2=%APPDATA%\jupyter\nbextensions\
-) ELSE (
- call :l_prt_be_line
- ECHO conda env.
- set v_path2=%v_path1:~,-18%\share\jupyter\nbextensions\
-)
-
-rem ## Main Block
-:l_main
- IF /i "%v_option%"=="" goto :l_help
-
- for %%i in (-h help) do if /i %v_option% == %%i call :l_help
- for %%i in (-e enable) do if /i %v_option% == %%i call :l_enable
- for %%i in (-d disable) do if /i %v_option% == %%i call :l_disable
- for %%i in (-i install) do if /i %v_option% == %%i call :l_install
- for %%i in (-up upgrade) do if /i %v_option% == %%i call :l_upgrade
- for %%i in (-v version) do if /i %v_option% == %%i call :l_version
- for %%i in (-ce checkext) do if /i %v_option% == %%i call :l_check_extension
- for %%i in (-cb checkbpl) do if /i %v_option% == %%i call :l_check_visualpython
- for %%i in (-un uninstall) do if /i %v_option% == %%i goto :l_uninstall
- goto :eof
-
-rem ## Function Block
-:l_help
- echo.
- echo usage: visualpy option
- echo optional arguments:
- echo -h, help show this help message and exit
- echo -e, enable enable Visual Python
- echo -d, disable disable Visual Python
- echo -i, install install Visual Python extensions
- echo -un, uninstall uninstall Visual Python packages
- echo -up, upgrade upgrade Visual Python Package
- echo -v, version show Visual Python current version
- echo.
- goto :eof
-
-:l_check_extension
- IF NOT EXIST "%v_path2%" call :l_prt_extensiondir
- goto :eof
-
-:l_check_visualpython
- IF EXIST "%v_path2%%v_prod%" (
- set v_flag=1
- ) ELSE (
- set v_flag=2
- )
- goto :eof
-
-:l_install
- rem "" is for envname with space.
- IF EXIST "%v_path2%%v_prod%" ( call :l_prt_be_line
- echo Check installed %v_prod% Path :
- echo %v_path2%%v_prod%
- call :l_prt_visualpythondir
- call :l_overwrite
- ) ELSE ( call :l_copy_files
- call :l_enable
- )
- goto :eof
-
-:l_enable
- call :l_prt_be_line
- %v_str1% enable %v_str2%
- call :l_prt_af_line
- goto :eof
-
-:l_disable
- call :l_prt_af_line
- %v_str1% disable %v_str2%
- call :l_prt_af_line
- goto :eof
-
-:l_overwrite
- rem if visaulpython 없는경우 install로 수행
- rem else remove & install
- call :l_disable
- call :l_remove_files
- call :l_copy_files
- call :l_enable
- goto :eof
-
-:l_copy_files
- call :l_prt_be_line
- echo source : %v_path1%\%v_prod%\
- rem "" is for envname with space.
- xcopy /q /y /e "%v_path1%\%v_prod%" "%v_path2%%v_prod%\"
- echo target : %v_path2%%v_prod%\
- call :l_prt_af_line
- goto :eof
-
-:l_remove_files
- call :l_prt_be_line
- echo Remove Visual Python Directories.
- rem "" is for envname with space.
- rmdir /s /q "%v_path2%%v_prod%"
- call :l_prt_af_line
- goto :eof
-
-:l_upgrade
- call :l_prt_af_line
- echo Running upgrade visualpython.
- call :l_prt_af_line
- rem setting current version
- for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do (
- set v_currentver=%%i
- )
-
- rem running version upgrade
- %v_upgr%
-
- rem setting last installed version
- for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do (
- set v_lastver=%%i
- )
- set v_install= Installed %v_currentver%
- set v_last=Last Release %v_lastver%
-
- call :l_prt_af_line
-
- if not %v_lastver:~9% == %v_currentver:~9% (
- echo change visualpython extension files ...
- call :l_disable
- call :l_copy_files
- call :l_enable
- ) else (
- echo Already installed last Visual Python version.
- call :l_print_version
- )
- goto :eof
-
-:l_version
- rem call :l_prt_be_line
-
- for /f "tokens=*" %%i in ('%v_ckup% 2^>^&1 ^| find /i "%v_prod%"') do ( set v_info=%%i )
-
- if "%v_info%."=="." (
- rem pass upgrade
- for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( set v_last=%%i
-
- set v_last=Last Release %%i
- set v_install= Installed %%i
- set v_ver_flag=0
- )
- ) else (
- rem run upgrade
- for /f "tokens=2-3" %%i in ( 'echo %v_info%' ) do (
- rem echo Last release Version : %%j
- rem echo Installed Version : %%i
- set v_install= Installed Version: %%i
- set v_last=Last Release Version: %%j
- set v_ver_flag=1
- )
- )
- call :l_print_version
- goto :eof
-
-:l_print_version
- call :l_prt_af_line
- echo %v_install%
- echo %v_last%
- call :l_prt_af_line
- rem echo %v_flag%
- goto :eof
-
-:l_prt_extensiondir
- call :l_prt_be_line
- echo Nbextension not activated
- echo Plz install nbextension
- call :l_prt_af_line
- goto :eof
-
-:l_prt_visualpythondir
- call :l_prt_af_line
- echo Already exists Visual Python.
- goto :eof
-
-:l_prt_notexists_visualpythondir
- call :l_prt_be_line
- echo Visual Python extension not installed.
- call :l_prt_af_line
- goto :eof
-
-:l_prt_be_line
- echo.
- echo ==========================================================================================
- goto :eof
-
-:l_prt_af_line
- echo ==========================================================================================
- goto :eof
-
-:l_prt_line
- echo ------------------------------------------------------------------------------------------
- goto :eof
-
-
-:l_uninstall
- IF EXIST "%v_path2%%v_prod%" (
- call :l_disable
- call :l_remove_files
- echo "%v_path2%%v_prod%"
- call :l_prt_af_line
- %v_unst%
- ) else (
- call :l_prt_be_line
- echo %v_path1:~,-18%\share\jupyter\nbextensions\
- echo %v_path2%%v_prod%
- call :l_prt_af_line
- %v_unst%
- )
-
-rem #==========================================================================
-rem #End of File
-rem #==========================================================================
+@echo off
+SetLocal
+rem #==========================================================================
+rem # Filename : visualpy.bat
+rem # function : control Visual Python for windows
+rem # Creator : BlackLogic - LJ
+rem # version : 2.1
+rem # License : GPLv3
+rem # Date : 2020 07.30
+rem # MDate : 2020 12.29
+rem #==========================================================================
+
+rem ## setting variables
+
+set v_prod=visualpython
+(echo "%v_prod%" & echo.) | findstr /O . | more +1 | (set /P RESULT= & call exit /B %%RESULT%%)
+set /A v_prd_length=%ERRORLEVEL%-5
+set v_option=%1
+for /f "delims=, tokens=1*" %%i in ('pip show %v_prod% 2^>^&1 ^| find "Location"') do (
+set v_1=%%i)
+set v_path1=%v_1:~10%
+set v_str1=jupyter nbextension
+set v_str2=%v_prod%/src/main
+set v_srch=pip search %v_prod%
+set v_upgr=pip install %v_prod% --upgrade
+set v_unst=pip uninstall %v_prod%
+set v_ckup=pip list -o
+set v_show=pip show %v_prod%
+
+rem check env & setting path2
+where /q conda-env
+IF ERRORLEVEL 1 (
+ call :l_prt_be_line
+ ECHO Not a conda env.
+ set v_path2=%APPDATA%\jupyter\nbextensions\
+) ELSE (
+ call :l_prt_be_line
+ ECHO conda env.
+ set v_path2=%v_path1:~,-18%\share\jupyter\nbextensions\
+)
+
+rem ## Main Block
+:l_main
+ IF /i "%v_option%"=="" goto :l_help
+
+ for %%i in (-h help) do if /i %v_option% == %%i call :l_help
+ for %%i in (-e enable) do if /i %v_option% == %%i call :l_enable
+ for %%i in (-d disable) do if /i %v_option% == %%i call :l_disable
+ for %%i in (-i install) do if /i %v_option% == %%i call :l_install
+ for %%i in (-up upgrade) do if /i %v_option% == %%i call :l_upgrade
+ for %%i in (-v version) do if /i %v_option% == %%i call :l_version
+ for %%i in (-ce checkext) do if /i %v_option% == %%i call :l_check_extension
+ for %%i in (-cb checkbpl) do if /i %v_option% == %%i call :l_check_visualpython
+ for %%i in (-un uninstall) do if /i %v_option% == %%i goto :l_uninstall
+ goto :eof
+
+rem ## Function Block
+:l_help
+ echo.
+ echo usage: visualpy option
+ echo optional arguments:
+ echo -h, help show this help message and exit
+ echo -e, enable enable Visual Python
+ echo -d, disable disable Visual Python
+ echo -i, install install Visual Python extensions
+ echo -un, uninstall uninstall Visual Python packages
+ echo -up, upgrade upgrade Visual Python Package
+ echo -v, version show Visual Python current version
+ echo.
+ goto :eof
+
+:l_check_extension
+ IF NOT EXIST "%v_path2%" call :l_prt_extensiondir
+ goto :eof
+
+:l_check_visualpython
+ IF EXIST "%v_path2%%v_prod%" (
+ set v_flag=1
+ ) ELSE (
+ set v_flag=2
+ )
+ goto :eof
+
+:l_install
+ rem "" is for envname with space.
+ IF EXIST "%v_path2%%v_prod%" ( call :l_prt_be_line
+ echo Check installed %v_prod% Path :
+ echo %v_path2%%v_prod%
+ call :l_prt_visualpythondir
+ call :l_overwrite
+ ) ELSE ( call :l_copy_files
+ call :l_enable
+ )
+ goto :eof
+
+:l_enable
+ call :l_prt_be_line
+ %v_str1% enable %v_str2%
+ call :l_prt_af_line
+ goto :eof
+
+:l_disable
+ call :l_prt_af_line
+ %v_str1% disable %v_str2%
+ call :l_prt_af_line
+ goto :eof
+
+:l_overwrite
+ rem if visaulpython 없는경우 install로 수행
+ rem else remove & install
+ call :l_disable
+ call :l_remove_files
+ call :l_copy_files
+ call :l_enable
+ goto :eof
+
+:l_copy_files
+ call :l_prt_be_line
+ echo source : %v_path1%\%v_prod%\
+ rem "" is for envname with space.
+ xcopy /q /y /e "%v_path1%\%v_prod%" "%v_path2%%v_prod%\"
+ echo target : %v_path2%%v_prod%\
+ call :l_prt_af_line
+ goto :eof
+
+:l_remove_files
+ call :l_prt_be_line
+ echo Remove Visual Python Directories.
+ rem "" is for envname with space.
+ rmdir /s /q "%v_path2%%v_prod%"
+ call :l_prt_af_line
+ goto :eof
+
+:l_upgrade
+ call :l_prt_af_line
+ echo Running upgrade visualpython.
+ call :l_prt_af_line
+ rem setting current version
+ for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do (
+ set v_currentver=%%i
+ )
+
+ rem running version upgrade
+ %v_upgr%
+
+ rem setting last installed version
+ for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do (
+ set v_lastver=%%i
+ )
+ set v_install= Installed %v_currentver%
+ set v_last=Last Release %v_lastver%
+
+ call :l_prt_af_line
+
+ if not %v_lastver:~9% == %v_currentver:~9% (
+ echo change visualpython extension files ...
+ call :l_disable
+ call :l_copy_files
+ call :l_enable
+ ) else (
+ echo Already installed last Visual Python version.
+ call :l_print_version
+ )
+ goto :eof
+
+:l_version
+ rem call :l_prt_be_line
+
+ for /f "tokens=*" %%i in ('%v_ckup% 2^>^&1 ^| find /i "%v_prod%"') do ( set v_info=%%i )
+
+ if "%v_info%."=="." (
+ rem pass upgrade
+ for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( set v_last=%%i
+
+ set v_last=Last Release %%i
+ set v_install= Installed %%i
+ set v_ver_flag=0
+ )
+ ) else (
+ rem run upgrade
+ for /f "tokens=2-3" %%i in ( 'echo %v_info%' ) do (
+ rem echo Last release Version : %%j
+ rem echo Installed Version : %%i
+ set v_install= Installed Version: %%i
+ set v_last=Last Release Version: %%j
+ set v_ver_flag=1
+ )
+ )
+ call :l_print_version
+ goto :eof
+
+:l_print_version
+ call :l_prt_af_line
+ echo %v_install%
+ echo %v_last%
+ call :l_prt_af_line
+ rem echo %v_flag%
+ goto :eof
+
+:l_prt_extensiondir
+ call :l_prt_be_line
+ echo Nbextension not activated
+ echo Plz install nbextension
+ call :l_prt_af_line
+ goto :eof
+
+:l_prt_visualpythondir
+ call :l_prt_af_line
+ echo Already exists Visual Python.
+ goto :eof
+
+:l_prt_notexists_visualpythondir
+ call :l_prt_be_line
+ echo Visual Python extension not installed.
+ call :l_prt_af_line
+ goto :eof
+
+:l_prt_be_line
+ echo.
+ echo ==========================================================================================
+ goto :eof
+
+:l_prt_af_line
+ echo ==========================================================================================
+ goto :eof
+
+:l_prt_line
+ echo ------------------------------------------------------------------------------------------
+ goto :eof
+
+
+:l_uninstall
+ IF EXIST "%v_path2%%v_prod%" (
+ call :l_disable
+ call :l_remove_files
+ echo "%v_path2%%v_prod%"
+ call :l_prt_af_line
+ %v_unst%
+ ) else (
+ call :l_prt_be_line
+ echo %v_path1:~,-18%\share\jupyter\nbextensions\
+ echo %v_path2%%v_prod%
+ call :l_prt_af_line
+ %v_unst%
+ )
+
+rem #==========================================================================
+rem #End of File
+rem #==========================================================================
EndLocal
\ No newline at end of file
diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js
index 05eaedcf..4988fd64 100644
--- a/src/api_block/blockContainer.js
+++ b/src/api_block/blockContainer.js
@@ -261,6 +261,9 @@ define([
this.reRenderAllBlock_asc();
this.resetBlockListAndRenderThisBlock(block);
}
+ return block;
+ } else {
+ return null;
}
}
@@ -289,6 +292,9 @@ define([
this.resetOptionPage();
this.reRenderAllBlock_asc();
}
+ return block;
+ } else {
+ return null;
}
}
@@ -298,8 +304,6 @@ define([
var passChecking = false;
if (block) {
if (block.isModified) {
- // set apply button enabled
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).removeClass('disabled');
// show title alert
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'block');
} else {
@@ -338,20 +342,16 @@ define([
block.state_backup['isFinally'] = nowState['isFinally'];
}
if (!passChecking && JSON.stringify(nowState) != JSON.stringify(block.state_backup)) {
- // set apply button enabled
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).removeClass('disabled');
// show title alert
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'block');
// set this block to isModified = true
block.isModified = true;
} else {
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).addClass('disabled');
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'none');
}
}
} else {
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).addClass('disabled');
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'none');
}
}
@@ -2581,7 +2581,7 @@ define([
this.hideOptionPreviewBox();
$(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_PREVIEW_BUTTON).removeClass('enabled');
- this.setNavigator(BLOCK_CODELINE_TYPE.NONE, 'Visual Python 1.1.0');
+ this.setNavigator(BLOCK_CODELINE_TYPE.NONE, 'Visual Python 1.1.1');
this.setFocusedPageType(FOCUSED_PAGE_TYPE.BOARD);
$('.vp-apiblock-option-tab-none').css(STR_DISPLAY, STR_BLOCK);
}
diff --git a/src/api_block/index.html b/src/api_block/index.html
index 3b1069df..70894ee2 100644
--- a/src/api_block/index.html
+++ b/src/api_block/index.html
@@ -37,7 +37,7 @@
vp-accordion-caption'
data-category="api">Library
-