From 89a6cdcb146382599bf9189eea95da26d735267d Mon Sep 17 00:00:00 2001 From: jykim Date: Sun, 12 Jun 2016 15:19:13 +0900 Subject: [PATCH 1/3] language update --- app/entry_offline.js | 9 +++++-- app/lang/code.js | 52 ++++++++++++++++++++++++++++++-------- app/lang/en.js | 40 +++++++++++++++++++++++++---- app/lang/ko.js | 52 ++++++++++++++++++++++++++++++-------- app/src/native_controll.js | 5 ++-- app/src/workspace.js | 22 ++++++++-------- package.json | 8 +++--- 7 files changed, 141 insertions(+), 47 deletions(-) diff --git a/app/entry_offline.js b/app/entry_offline.js index 1764ce10e..698488907 100644 --- a/app/entry_offline.js +++ b/app/entry_offline.js @@ -297,7 +297,10 @@ app.once('ready', function() { mainWindow = new BrowserWindow({ width: 1024, height: 700, - title: title + title: title, + webPreferences: { + backgroundThrottling: false + } }); mainWindow.setMenu(null); @@ -357,7 +360,9 @@ ipcMain.on('openHardware', function(event, arg) { width: 800, height: 650, title: title, - resizable: false + webPreferences: { + backgroundThrottling: false + } }); hardwareWindow.setMenu(null); diff --git a/app/lang/code.js b/app/lang/code.js index f525b84c3..1d48e8d7f 100644 --- a/app/lang/code.js +++ b/app/lang/code.js @@ -25,6 +25,7 @@ Lang.Blocks = { "BITBRICK_potentiometer": "potentiometer", "BITBRICK_MIC": "MIC", "BITBRICK_UserSensor": "UserSensor", + "BITBRICK_UserInput": "UserInput", "BITBRICK_dc_direction_ccw": "CCW", "BITBRICK_dc_direction_cw": "CW", "CODEino_get_sensor_number_0": "0", @@ -838,6 +839,18 @@ Lang.Buttons = { }; Lang.ko = "한국어"; Lang.Menus = { + "open_only_shared_lecture": "오픈 강의 페이지에 <공개> 한 강의만 불러올 수 있습니다. 불러오고자 하는 강의공개여부를 확인해 주세요.", + "already_exist_group": "이미 존재하는 학급 입니다.", + "cannot_invite_you": "자기 자신을 초대할 수 없습니다.", + "apply_original_image": "원본 이미지 그대로 적용하기", + "draw_new_ques": "새로 그리지 페이지로\n이동하시겠습니까?", + "draw_new_go": "이동하기", + "draw_new_stay": "이동하지 않기", + "file_upload_desc_1": "이런 그림은 \n 안돼요!", + "file_upload_desc_2": "피가 보이고 잔인한 그림", + "file_upload_desc_3": "선정적인 신체노출의 그림", + "file_upload_desc_4": "욕이나 저주 등의 불쾌감을 주거나 혐오감을 일으키는 그림", + "file_upload_desc_5": "* 위와 같은 내용은 이용약관 및 관련 법률에 의해 제재를 받으실 수 있습니다.", "lesson_by_teacher": "선생님들이 직접 만드는 강의입니다.", "delete_group_art": "학급 공유하기 목록에서 삭제 하시겠습니까?", "elementary_short": "초등", @@ -915,14 +928,15 @@ Lang.Menus = { "lecture_help_4": "학습도중에 PDF자료보기를 통해 학습에 도움을 받을 수 있습니다.", "lecture_help_5": "학습에 필요한 블록들만 선택해주세요. 선택하지 않은 블록은 숨겨집니다.", "only_pdf": ".pdf형식의 파일만 입력 가능합니다.", - "enter_project_video": "적어도 하나의 프로젝트나 영상을 입력하세요.", + "enter_project_video": "적어도 하나의 작품이나 영상을 입력하세요.", "enter_title": "제목을 입력하세요.", - "enter_recommanded_grade": "추천학년을 입력 하세요.", + "enter_recommanded_grade": "추천 학년을 입력 하세요.", "enter_level_diff": "난이도를 입력하세요.", - "enter_time_spent": "소요시간을 입력하세요.'", - "enter_shared_area": "적어도 하나의 공유공간을 선택해주세요.", - "enter_goals": "학습목표를 입력해주세요.'", - "enter_description": "컨텐츠에관한 설명을 입력 하세요.", + "enter_time_spent": "소요시간을 입력하세요.", + "enter_shared_area": "적어도 하나의 공유 공간을 선택해주세요.", + "enter_goals": "학습목표를 입력해주세요.", + "enter_lecture_description": "강의 설명을 입력하세요.", + "enter_curriculum_description": "강의 모음 설명을 입력하세요.", "first_page": "처음 입니다.", "last_page": "마지막 페이지 입니다.", "alert_duplicate_lecture": "이미 등록된 강의는 다시 등록할 수 없습니다.", @@ -980,7 +994,7 @@ Lang.Menus = { "course_build_desc_1": "강의는", "course_build_desc_2": "최대30개", "course_build_desc_3": "등록할 수 있습니다.", - "lseeon_list": "강의 목록 ", + "lseeon_list": "강의 목록 보기", "open_lessons": "강의 불러오기", "course_title": "강의 모음 제목", "title_limit_30": "강의 모음 제목을 입력해 주세요(30자 이내) ", @@ -1116,7 +1130,7 @@ Lang.Menus = { "space_trip_desc_1": "우주탐사를 마친 엔트리봇!", "space_trip_desc_2": "지구로 돌아갈 수 있도록 도와주세요.", "learn_programming_mission": "미션을 해결하며 배우는 프로그래밍", - "make_open_lecture": "오픈강의 만들기", + "make_open_lecture": "오픈 강의 만들기", "group_created": "만든 학급", "group_signup": "가입한 학급", "delete_from_list": "을(를) 목록에서 삭제하시겠습니까?", @@ -1328,11 +1342,18 @@ Lang.Menus = { "bitbrick": "비트브릭", "codeino": "코드이노", "e-sensor": "E-센서보드", + "e-sensorUsb": "E-센서보드(유선연결)", + "e-sensorBT": "E-센서보드(무선연결)", "hamster": "햄스터", "littlebits": "리틀비츠", "orangeBoard": "오렌지 보드", "robotis_carCont": "로보티즈 로봇자동차", "robotis_IoT": "로보티즈 IoT", + "dplay": "디플레이", + "nemoino": "네모이노", + "Xbot": "엑스봇 엣지 USB", + "XbotBT": "엑스봇 에뽀/엣지 블투투스", + "Neobot": "네오봇", "about": "알아보기", "articles": "토론하기", "gallery": "구경하기", @@ -2653,6 +2674,7 @@ Lang.Workspace = { "file_save_download": "내 컴퓨터에 저장하기", "func": "함수", "function_create": "함수 만들기", + "function_add": "함수 추가", "interface": "인터페이스", "landscape": "배경", "list": "리스트", @@ -2663,7 +2685,7 @@ Lang.Workspace = { "list_add_fail_msg2": "리스트의 이름이 적절하지 않습니다.", "list_add_ok": "리스트 추가 완료", "list_add_ok_msg": "을(를) 추가하였습니다.", - "list_create": "리스트 만들기", + "list_create": "리스트 추가", "list_dup": "같은 이름의 리스트가 이미 존재합니다.", "list_newname": "새로운 이름", "list_remove": "리스트 삭제", @@ -2741,6 +2763,7 @@ Lang.Workspace = { "variable_add_ok": "변수 추가 완료", "variable_add_ok_msg": "을(를) 추가하였습니다.", "variable_create": "변수 만들기", + "variable_add": "변수 추가", "variable_dup": "같은 이름의 변수가 이미 존재합니다.", "variable_newname": "새로운 이름", "variable_remove": "변수 삭제", @@ -2827,13 +2850,17 @@ Lang.Workspace = { "broken_file_msg": "파일이 깨졌거나 잘못된 파일을 불러왔습니다.", "check_audio_msg": "MP3, WAV 파일만 업로드가 가능합니다.", "check_entry_file_msg": "ENT 파일만 불러오기가 가능합니다.", - "hardware_version_alert_text": "5월 30일 부터 구버전의 연결프로그램의 사용이 중단 됩니다.\n하드웨어 연결 프로그램을 최신 버전으로 업데이트 해주시기 바랍니다." + "hardware_version_alert_text": "5월 30일 부터 구버전의 연결프로그램의 사용이 중단 됩니다.\n하드웨어 연결 프로그램을 최신 버전으로 업데이트 해주시기 바랍니다.", + "variable_name_auto_edited_title": "변수 이름 자동 변경", + "variable_name_auto_edited_content": "변수의 이름은 10글자를 넘을 수 없습니다.", + "list_name_auto_edited_title": "리스트 이름 자동 변경", + "list_name_auto_edited_content": "리스트의 이름은 10글자를 넘을 수 없습니다." }; Lang.code = "코드보기"; Lang.EntryStatic = { "group": "학급 학습하기", "private": "나만보기", - "public": "오픈강의", + "public": "오픈 강의", "lecture_is_open_true": "공개", "lecture_is_open_false": "비공개", "category_all": "모든 작품", @@ -3315,6 +3342,9 @@ Lang.template = { "nemoino_toggle_led": "Digital %1 Pin %2 %3", "sensorBoard_toggle_led": "Digital %1 Pin %2 %3", "CODEino_toggle_led": "Digital %1 Pin %2 %3", + "Ardublock_get_digital_value": "디지털 %1 번 센서값 ", + "Ardublock_toggle_led": "Digital %1 Pin %2 %3", + "Ardublock_toggle_pwm": "Digital %1 Pin %2 %3", "arduino_toggle_pwm": "Digital %1 Pin %2 %3", "dplay_toggle_pwm": "Digital %1 Pin %2 %3", "nemoino_toggle_pwm": "Digital %1 Pin %2 %3", diff --git a/app/lang/en.js b/app/lang/en.js index 84c7fecea..2aac853df 100644 --- a/app/lang/en.js +++ b/app/lang/en.js @@ -25,6 +25,7 @@ Lang.Blocks = { "BITBRICK_potentiometer": "potentiometer", "BITBRICK_MIC": "MIC", "BITBRICK_UserSensor": "UserSensor", + "BITBRICK_UserInput": "UserInput", "BITBRICK_dc_direction_ccw": "CCW", "BITBRICK_dc_direction_cw": "CW", "CODEino_get_sensor_number_0": "0", @@ -838,6 +839,18 @@ Lang.Buttons = { }; Lang.ko = "한국어"; Lang.Menus = { + "open_only_shared_lecture": "오픈 강의 페이지에 <공개> 한 강의만 불러올 수 있습니다. 불러오고자 하는 강의공개여부를 확인해 주세요.", + "already_exist_group": "group already exists", + "cannot_invite_you": "Can't invite by yourself", + "apply_original_image": "Save original image", + "draw_new_ques": "Are you sure you want to go to \n'Draw new object' page?", + "draw_new_go": "Yes, Go", + "draw_new_stay": "No, Stay", + "file_upload_desc_1": "Make sure you don't upload", + "file_upload_desc_2": "cruel and bloody images", + "file_upload_desc_3": "overly sexual images", + "file_upload_desc_4": "images with curse words, images that incite disgust in viewers", + "file_upload_desc_5": "* Uploading of above contents may be restricted under user policy and related laws.", "lesson_by_teacher": "Teacher created lesson", "delete_group_art": "from the list?", "elementary_short": "elementary", @@ -922,7 +935,8 @@ Lang.Menus = { "enter_time_spent": "Enter time spent.", "enter_shared_area": "Select at least one sharing space", "enter_goals": "Enter goals", - "enter_description": "Enter content information", + "enter_lecture_description": "Enter lecture information", + "enter_curriculum_description": "Enter courseware information", "first_page": "처음 입니다.", "last_page": "마지막 페이지 입니다.", "alert_duplicate_lecture": "The lesson is already registered", @@ -980,7 +994,7 @@ Lang.Menus = { "course_build_desc_1": "", "course_build_desc_2": "Up to 30 lessons", "course_build_desc_3": "allowed.", - "lseeon_list": "Lesson List", + "lseeon_list": "show lesson List", "open_lessons": "Open lessons", "course_title": "Courseware title", "title_limit_30": "Enter courseware title(within 30 characters)", @@ -1307,7 +1321,7 @@ Lang.Menus = { "eduSupportDesc_2": "Download educational materials from the Educational Materials page.", "materials_1_title": "Textbook by grade levels", "materials_1_desc_1": "Improve coding skills step by step", - "materials_1_desc_2": "따라하며 쉽게 엔트리를 익혀보세요!", + "materials_1_desc_2": "", "materials_2_title": "EBS TV program and teacher's guide", "materials_2_desc_1": "EBS TV series are accompanied", "materials_2_desc_2": "by teacher's guide", @@ -1328,11 +1342,18 @@ Lang.Menus = { "bitbrick": "Bitbrick", "codeino": "CODEino", "e-sensor": "E-Sensorboard", + "e-sensorUsb": "E-Sensor board", + "e-sensorBT": "E-Sensor board(Bluetooth)", "hamster": "Hamster", "littlebits": "Littlebits", "orangeBoard": "OrangeBoard", "robotis_carCont": "Robotis Robot car", "robotis_IoT": "Robotis IoT", + "dplay": "DPLAY", + "nemoino": "NEMOino", + "Xbot": "XBOT EDGE USB", + "XbotBT": "XBOT EPOR and EDGE Bluetooth", + "Neobot": "Neo Bot", "about": "About", "articles": "Articles", "gallery": "Gallery", @@ -1349,7 +1370,7 @@ Lang.Menus = { "My_lesson": "Open Lessons", "Resources": "Resources", "play_software": "EBS Let’s play, SW!", - "problem_solve": "Problem Solving", + "problem_solve": "Entry Learn", "Learn": "Learn", "teaching_tools": "Teaching Tools", "about_entry": "About ENTRY", @@ -2653,6 +2674,7 @@ Lang.Workspace = { "file_save_download": "Download project", "func": "function", "function_create": "Add function", + "function_add": "Add function", "interface": "Interface", "landscape": "Landscape", "list": "List", @@ -2741,6 +2763,7 @@ Lang.Workspace = { "variable_add_ok": "Variable added", "variable_add_ok_msg": "was successfully added.", "variable_create": "Add variable", + "variable_add": "Add variable", "variable_dup": "Variable name was already exists.", "variable_newname": "New Name", "variable_remove": "Remove variable", @@ -2827,7 +2850,11 @@ Lang.Workspace = { "broken_file_msg": "File is corrupt or wrong file is loaded", "check_audio_msg": "Only MP3 or WAV files are uploadable", "check_entry_file_msg": "Only ENT files are loadable", - "hardware_version_alert_text": "Please update your hardware connector to the latest version." + "hardware_version_alert_text": "Please update your hardware connector to the latest version.", + "variable_name_auto_edited_title": "variable name auto-edited", + "variable_name_auto_edited_content": "variable name cannot exceed 10 characters", + "list_name_auto_edited_title": "list name auto-edited", + "list_name_auto_edited_content": "list name cannot exceed 10 characters" }; Lang.code = "view code"; Lang.EntryStatic = { @@ -3315,6 +3342,9 @@ Lang.template = { "nemoino_toggle_led": "Digital %1 Pin %2 %3", "sensorBoard_toggle_led": "Digital %1 Pin %2 %3", "CODEino_toggle_led": "Digital %1 Pin %2 %3", + "Ardublock_get_digital_value": "Digital %1 Sensor value ", + "Ardublock_toggle_led": "Digital %1 Pin %2 %3", + "Ardublock_toggle_pwm": "Digital %1 Pin %2 %3", "arduino_toggle_pwm": "Digital %1 Pin %2 %3", "dplay_toggle_pwm": "Digital %1 Pin %2 %3", "nemoino_toggle_pwm": "Digital %1 Pin %2 %3", diff --git a/app/lang/ko.js b/app/lang/ko.js index 1dfab4598..bf300a07f 100644 --- a/app/lang/ko.js +++ b/app/lang/ko.js @@ -25,6 +25,7 @@ Lang.Blocks = { "BITBRICK_potentiometer": "가변저항", "BITBRICK_MIC": "소리감지센서", "BITBRICK_UserSensor": "사용자입력", + "BITBRICK_UserInput": "사용자입력", "BITBRICK_dc_direction_ccw": "반시계", "BITBRICK_dc_direction_cw": "시계", "CODEino_get_sensor_number_0": "0", @@ -838,6 +839,18 @@ Lang.Buttons = { }; Lang.ko = "한국어"; Lang.Menus = { + "open_only_shared_lecture": "오픈 강의 페이지에 <공개> 한 강의만 불러올 수 있습니다. 불러오고자 하는 강의공개여부를 확인해 주세요.", + "already_exist_group": "이미 존재하는 학급 입니다.", + "cannot_invite_you": "자기 자신을 초대할 수 없습니다.", + "apply_original_image": "원본 이미지 그대로 적용하기", + "draw_new_ques": "새로 그리지 페이지로\n이동하시겠습니까?", + "draw_new_go": "이동하기", + "draw_new_stay": "이동하지 않기", + "file_upload_desc_1": "이런 그림은 \n 안돼요!", + "file_upload_desc_2": "피가 보이고 잔인한 그림", + "file_upload_desc_3": "선정적인 신체노출의 그림", + "file_upload_desc_4": "욕이나 저주 등의 불쾌감을 주거나 혐오감을 일으키는 그림", + "file_upload_desc_5": "* 위와 같은 내용은 이용약관 및 관련 법률에 의해 제재를 받으실 수 있습니다.", "lesson_by_teacher": "선생님들이 직접 만드는 강의입니다.", "delete_group_art": "학급 공유하기 목록에서 삭제 하시겠습니까?", "elementary_short": "초등", @@ -915,14 +928,15 @@ Lang.Menus = { "lecture_help_4": "학습도중에 PDF자료보기를 통해 학습에 도움을 받을 수 있습니다.", "lecture_help_5": "학습에 필요한 블록들만 선택해주세요. 선택하지 않은 블록은 숨겨집니다.", "only_pdf": ".pdf형식의 파일만 입력 가능합니다.", - "enter_project_video": "적어도 하나의 프로젝트나 영상을 입력하세요.", + "enter_project_video": "적어도 하나의 작품이나 영상을 입력하세요.", "enter_title": "제목을 입력하세요.", - "enter_recommanded_grade": "추천학년을 입력 하세요.", + "enter_recommanded_grade": "추천 학년을 입력 하세요.", "enter_level_diff": "난이도를 입력하세요.", - "enter_time_spent": "소요시간을 입력하세요.'", - "enter_shared_area": "적어도 하나의 공유공간을 선택해주세요.", - "enter_goals": "학습목표를 입력해주세요.'", - "enter_description": "컨텐츠에관한 설명을 입력 하세요.", + "enter_time_spent": "소요시간을 입력하세요.", + "enter_shared_area": "적어도 하나의 공유 공간을 선택해주세요.", + "enter_goals": "학습목표를 입력해주세요.", + "enter_lecture_description": "강의 설명을 입력하세요.", + "enter_curriculum_description": "강의 모음 설명을 입력하세요.", "first_page": "처음 입니다.", "last_page": "마지막 페이지 입니다.", "alert_duplicate_lecture": "이미 등록된 강의는 다시 등록할 수 없습니다.", @@ -980,7 +994,7 @@ Lang.Menus = { "course_build_desc_1": "강의는", "course_build_desc_2": "최대30개", "course_build_desc_3": "등록할 수 있습니다.", - "lseeon_list": "강의 목록 ", + "lseeon_list": "강의 목록 보기", "open_lessons": "강의 불러오기", "course_title": "강의 모음 제목", "title_limit_30": "강의 모음 제목을 입력해 주세요(30자 이내) ", @@ -1116,7 +1130,7 @@ Lang.Menus = { "space_trip_desc_1": "우주탐사를 마친 엔트리봇!", "space_trip_desc_2": "지구로 돌아갈 수 있도록 도와주세요.", "learn_programming_mission": "미션을 해결하며 배우는 프로그래밍", - "make_open_lecture": "오픈강의 만들기", + "make_open_lecture": "오픈 강의 만들기", "group_created": "만든 학급", "group_signup": "가입한 학급", "delete_from_list": "을(를) 목록에서 삭제하시겠습니까?", @@ -1328,11 +1342,18 @@ Lang.Menus = { "bitbrick": "비트브릭", "codeino": "코드이노", "e-sensor": "E-센서보드", + "e-sensorUsb": "E-센서보드(유선연결)", + "e-sensorBT": "E-센서보드(무선연결)", "hamster": "햄스터", "littlebits": "리틀비츠", "orangeBoard": "오렌지 보드", "robotis_carCont": "로보티즈 로봇자동차", "robotis_IoT": "로보티즈 IoT", + "dplay": "디플레이", + "nemoino": "네모이노", + "Xbot": "엑스봇 엣지 USB", + "XbotBT": "엑스봇 에뽀/엣지 블투투스", + "Neobot": "네오봇", "about": "알아보기", "articles": "토론하기", "gallery": "구경하기", @@ -2653,6 +2674,7 @@ Lang.Workspace = { "file_save_download": "내 컴퓨터에 저장하기", "func": "함수", "function_create": "함수 만들기", + "function_add": "함수 추가", "interface": "인터페이스", "landscape": "배경", "list": "리스트", @@ -2663,7 +2685,7 @@ Lang.Workspace = { "list_add_fail_msg2": "리스트의 이름이 적절하지 않습니다.", "list_add_ok": "리스트 추가 완료", "list_add_ok_msg": "을(를) 추가하였습니다.", - "list_create": "리스트 만들기", + "list_create": "리스트 추가", "list_dup": "같은 이름의 리스트가 이미 존재합니다.", "list_newname": "새로운 이름", "list_remove": "리스트 삭제", @@ -2741,6 +2763,7 @@ Lang.Workspace = { "variable_add_ok": "변수 추가 완료", "variable_add_ok_msg": "을(를) 추가하였습니다.", "variable_create": "변수 만들기", + "variable_add": "변수 추가", "variable_dup": "같은 이름의 변수가 이미 존재합니다.", "variable_newname": "새로운 이름", "variable_remove": "변수 삭제", @@ -2827,13 +2850,17 @@ Lang.Workspace = { "broken_file_msg": "파일이 깨졌거나 잘못된 파일을 불러왔습니다.", "check_audio_msg": "MP3, WAV 파일만 업로드가 가능합니다.", "check_entry_file_msg": "ENT 파일만 불러오기가 가능합니다.", - "hardware_version_alert_text": "5월 30일 부터 구버전의 연결프로그램의 사용이 중단 됩니다.\n하드웨어 연결 프로그램을 최신 버전으로 업데이트 해주시기 바랍니다." + "hardware_version_alert_text": "5월 30일 부터 구버전의 연결프로그램의 사용이 중단 됩니다.\n하드웨어 연결 프로그램을 최신 버전으로 업데이트 해주시기 바랍니다.", + "variable_name_auto_edited_title": "변수 이름 자동 변경", + "variable_name_auto_edited_content": "변수의 이름은 10글자를 넘을 수 없습니다.", + "list_name_auto_edited_title": "리스트 이름 자동 변경", + "list_name_auto_edited_content": "리스트의 이름은 10글자를 넘을 수 없습니다." }; Lang.code = "코드보기"; Lang.EntryStatic = { "group": "학급 학습하기", "private": "나만보기", - "public": "오픈강의", + "public": "오픈 강의", "lecture_is_open_true": "공개", "lecture_is_open_false": "비공개", "category_all": "모든 작품", @@ -3315,6 +3342,9 @@ Lang.template = { "nemoino_toggle_led": "디지털 %1 번 핀 %2 %3", "sensorBoard_toggle_led": "디지털 %1 번 핀 %2 %3", "CODEino_toggle_led": "디지털 %1 번 핀 %2 %3", + "Ardublock_get_digital_value": "디지털 %1 번 센서값 ", + "Ardublock_toggle_led": "디지털 %1 번 핀 %2 %3", + "Ardublock_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", "arduino_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", "dplay_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", "nemoino_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", diff --git a/app/src/native_controll.js b/app/src/native_controll.js index a5973a5d7..9c8063053 100644 --- a/app/src/native_controll.js +++ b/app/src/native_controll.js @@ -386,9 +386,8 @@ Entry.plugin = (function () { Entry.dispatchEvent('showLoadingPopup'); try{ var load_path = options.path; - var pathArr = load_path.split(path.sep); - pathArr.pop(); - localStorage.setItem('defaultPath', pathArr.join(path.sep)); + var parser = path.parse(filePath); + localStorage.setItem('defaultPath', parser.dir); that.loadProject(load_path, function (data) { var jsonObj = JSON.parse(data); diff --git a/app/src/workspace.js b/app/src/workspace.js index 86cd1abac..4e2f089b9 100644 --- a/app/src/workspace.js +++ b/app/src/workspace.js @@ -157,9 +157,8 @@ angular.module('workspace').controller("WorkspaceController", }); var filePath = file.path; - var pathArr = filePath.split('/'); - pathArr.pop(); - storage.setItem('defaultPath', pathArr.join('/')); + var parser = path.parse(filePath); + storage.setItem('defaultPath', parser.dir); $scope.loadProject(filePath); } else { @@ -344,8 +343,10 @@ angular.module('workspace').controller("WorkspaceController", function saveAsProject(title) { var default_path = storage.getItem('defaultPath') || ''; + var projectName = $scope.project.name.replace(/[\\\/:*?"<>|]/gi, ''); + var savePath = path.join(default_path, projectName); dialog.showSaveDialog({ - defaultPath: path.join(default_path, $scope.project.name), + defaultPath: savePath, title: title, filters: [ { @@ -355,9 +356,8 @@ angular.module('workspace').controller("WorkspaceController", ] }, function (filePath) { if(filePath) { - var pathArr = filePath.split('/'); - pathArr.pop(); - storage.setItem('defaultPath', pathArr.join('/')); + var parser = path.parse(filePath); + storage.setItem('defaultPath', parser.dir); try{ myProject.saveProject(filePath, function (project_name) { @@ -511,7 +511,9 @@ angular.module('workspace').controller("WorkspaceController", Entry.stateManager.addStamp(); storage.removeItem('tempProject'); Entry.plugin.beforeStatus = 'load'; + var default_path = storage.getItem('defaultPath') || ''; dialog.showOpenDialog({ + defaultPath: default_path, properties: [ 'openFile' ], filters: [ @@ -523,10 +525,8 @@ angular.module('workspace').controller("WorkspaceController", var pathInfo = path.parse(filePath); if(pathInfo.ext === '.ent') { - var pathArr = filePath.split('/'); - pathArr.pop(); - storage.setItem('defaultPath', pathArr.join('/')); - + var parser = path.parse(filePath); + storage.setItem('defaultPath', parser.dir); $scope.loadProject(filePath); } else { alert(Lang.Workspace.check_entry_file_msg); diff --git a/package.json b/package.json index a07fffeb2..f55d7e12b 100644 --- a/package.json +++ b/package.json @@ -44,11 +44,11 @@ }, "devDependencies": { "appdmg-tf": "^0.3.11", + "electron-builder": "^3.25.0", "electron-packager": "^7.0.2", "electron-prebuilt": "1.1.1", - "electron-builder": "^3.25.0", - "rimraf": "^2.5.2" + "rimraf": "^2.5.2", + "spectron": "^3.2.3" }, - "dependencies": { - } + "dependencies": {} } From bbee3d35ac2c600be15e1cf31c04e4ab2d916b5c Mon Sep 17 00:00:00 2001 From: jykim Date: Mon, 13 Jun 2016 10:24:39 +0900 Subject: [PATCH 2/3] =?UTF-8?q?spectron=20sample=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/workspace.js | 36 ++++++++++++ package.json | 4 +- test/default.js | 103 ++++++++++++++++++++++++++++++++++ test/test_file/test_case1.ent | Bin 0 -> 14950 bytes 4 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 test/default.js create mode 100644 test/test_file/test_case1.ent diff --git a/app/src/workspace.js b/app/src/workspace.js index 4e2f089b9..2cab4ff25 100644 --- a/app/src/workspace.js +++ b/app/src/workspace.js @@ -495,6 +495,42 @@ angular.module('workspace').controller("WorkspaceController", }); } + $scope.loadWorkspaceTest = function (filePath) { + // $scope.showSpinner(); + $scope.doPopupControl({ + 'type':'spinner', + 'msg': Lang.Workspace.loading_msg + }); + var canLoad = false; + if(!Entry.stateManager.isSaved()) { + canLoad = !confirm(Lang.Menus.save_dismiss); + } + + if(!canLoad) { + Entry.stateManager.addStamp(); + storage.removeItem('tempProject'); + Entry.plugin.beforeStatus = 'load'; + var default_path = storage.getItem('defaultPath') || ''; + + var pathInfo = path.parse(filePath); + + if(pathInfo.ext === '.ent') { + var parser = path.parse(filePath); + storage.setItem('defaultPath', parser.dir); + $scope.loadProject(filePath); + } else { + alert(Lang.Workspace.check_entry_file_msg); + $scope.doPopupControl({ + 'type':'hide' + }); + } + } else { + $scope.doPopupControl({ + 'type':'hide' + }); + } + } + // 불러오기 $scope.loadWorkspace = function() { // $scope.showSpinner(); diff --git a/package.json b/package.json index f55d7e12b..59b708da4 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "dist:win64": "build --arch x64", "pack:win": "electron-packager ./dist --platform=win32 --arch=ia32", "dist:osx": "build", - "start": "set NODE_ENV=development&&electron -d app" + "start": "set NODE_ENV=development&&electron -d app", + "test": "mocha test/default.js" }, "build": { "osx": { @@ -47,6 +48,7 @@ "electron-builder": "^3.25.0", "electron-packager": "^7.0.2", "electron-prebuilt": "1.1.1", + "mocha": "^2.5.3", "rimraf": "^2.5.2", "spectron": "^3.2.3" }, diff --git a/test/default.js b/test/default.js new file mode 100644 index 000000000..c26d8329a --- /dev/null +++ b/test/default.js @@ -0,0 +1,103 @@ +var Application = require('spectron').Application; +var assert = require('assert'); +var path = require('path'); +var electronPath = path.join(__dirname, '..', 'node_modules', '.bin', 'electron') +if (process.platform === 'win32') electronPath += '.cmd' +var appPath = path.join('app'); + +describe('application launch', function () { + this.timeout(10000); + before(function () { + this.app = new Application({ + path: electronPath, + args: [appPath] + }) + return this.app.start(); + }) + + after(function () { + if (this.app && this.app.isRunning()) { + return this.app.stop() + } + }) + + describe('기본 실행 확인', function () { + it('창이 1개 뜨는지 확인', function () { + return this.app.client.getWindowCount().then(function (count) { + assert.equal(count, 1) + }); + }); + + it('창이 보이는지 확인합니다.', function () { + return this.app.browserWindow.isVisible().then(function (isVisible) { + assert.equal(isVisible, true); + }); + }); + + it('윈도우 제목 확인', function () { + return this.app.browserWindow.getTitle().then(function (title) { + if(title.indexOf('엔트리') >= 0) { + assert.ok(title); + } else { + assert.fail(title, '엔트리', '잘못된 제목 삽입'); + } + }); + }); + }); + + + + /* + describe('파일 로드 확인', function () { + it('1번 파일', function (done) { + var self = this; + console.log('a'); + return this.app.client.execute(function () { + // console.log(angular); + var file_path = path.join(__dirname, '..', 'test', 'test_file', 'test_case1.ent'); + console.log(file_path); + try{ + var a = angular.element('.entryRunButtonWorkspace_w').scope(); + console.log(a); + console.log(angular); + return angular.element('.entryRunButtonWorkspace_w').scope().loadWorkspaceTest(file_path); + } catch(e) { + throw new Error(e); + return false; + } + }).then(function (equal) { + '자동문 의 사본' + var a = self.app.client.waitForText('#project_name').then(function (a, b, c) { + console.log(a); + console.log(b); + console.log(c); + console.log(equal); + done(); + }); + }); + }); + }); + */ +}) + + +// var self = this; +// this.app.start().then(function () { +// // 윈도우가 보이는지 확인합니다. +// return self.app.browserWindow.isVisible() +// }).then(function (isVisible) { +// // 윈도우가 보이는지 검증합니다. +// assert.equal(isVisible, true) +// }).then(function () { +// // 윈도우의 제목을 가져옵니다. +// return self.app.client.getTitle() +// }).then(function (title) { +// // 윈도우의 제목을 검증합니다. +// assert.equal(title, 'My App') +// }).then(function () { +// // 어플리케이션을 중지합니다. +// return self.app.stop() +// }).catch(function (error) { +// // 테스트의 실패가 있다면 로깅합니다. +// console.error('Test failed', error.message) +// }) diff --git a/test/test_file/test_case1.ent b/test/test_file/test_case1.ent new file mode 100644 index 0000000000000000000000000000000000000000..7c143c5155031ec068c6b1091bd3e5cff21e2f9b GIT binary patch literal 14950 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 literal 0 HcmV?d00001 From 1d3a35dac83dcc5f658c1da5f0e0bde513c03889 Mon Sep 17 00:00:00 2001 From: jykim Date: Mon, 13 Jun 2016 15:45:30 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=B5=9C?= =?UTF-8?q?=EC=8B=A0=20=ED=8C=8C=EC=9D=BC=20=EC=A0=81=EC=9A=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/lang/code.js | 6 ++---- app/lang/en.js | 4 +--- app/lang/ko.js | 6 ++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/app/lang/code.js b/app/lang/code.js index 1d48e8d7f..ca8a5b605 100644 --- a/app/lang/code.js +++ b/app/lang/code.js @@ -2324,13 +2324,14 @@ Lang.Menus = { "join_entry": "엔트리 회원 가입하기", "learned_computing": "기존에 소프트웨어 교육을 받아보셨나요?", "cparty_index_description_1": "두근두근 소프트웨어와 첫 만남.", - "cparty_index_description_2": "소프트웨어랑 재미있게 놀다 보면 소프트웨어의 원리도 배우고, 생각하는힘도 쑥쑥!", + "cparty_index_description_2": "소프트웨어랑 재미있게 놀다 보면 소프트웨어의 원리도 배우고, 생각하는 힘도 쑥쑥!", "cparty_index_description_3": "엔트리를 통해 코딩 미션에 도전하고 인증서 받으세요.", "cparty_index_description_4": "2015 Online Coding Party는", "cparty_index_description_5": "SW교육 체험 주간", "cparty_index_description_6": "의 일환으로써,", "cparty_index_description_7": "SW교육을 준비하는 선생님들의 모임", "cparty_index_description_8": "과 함께 만들어졌습니다.", + "cparty_index_description_9": "2016 Online Coding Party는", "congratulation": "축하 드립니다!", "warm_up": "체험", "beginner": "입문", @@ -3342,9 +3343,6 @@ Lang.template = { "nemoino_toggle_led": "Digital %1 Pin %2 %3", "sensorBoard_toggle_led": "Digital %1 Pin %2 %3", "CODEino_toggle_led": "Digital %1 Pin %2 %3", - "Ardublock_get_digital_value": "디지털 %1 번 센서값 ", - "Ardublock_toggle_led": "Digital %1 Pin %2 %3", - "Ardublock_toggle_pwm": "Digital %1 Pin %2 %3", "arduino_toggle_pwm": "Digital %1 Pin %2 %3", "dplay_toggle_pwm": "Digital %1 Pin %2 %3", "nemoino_toggle_pwm": "Digital %1 Pin %2 %3", diff --git a/app/lang/en.js b/app/lang/en.js index 2aac853df..77646de71 100644 --- a/app/lang/en.js +++ b/app/lang/en.js @@ -2331,6 +2331,7 @@ Lang.Menus = { "cparty_index_description_6": "prepared with", "cparty_index_description_7": "Teachers Preparing Software Education group.", "cparty_index_description_8": "", + "cparty_index_description_9": "2016 Online Coding Party is part of", "congratulation": "Congratulation!", "warm_up": "warm-up", "beginner": "beginner", @@ -3342,9 +3343,6 @@ Lang.template = { "nemoino_toggle_led": "Digital %1 Pin %2 %3", "sensorBoard_toggle_led": "Digital %1 Pin %2 %3", "CODEino_toggle_led": "Digital %1 Pin %2 %3", - "Ardublock_get_digital_value": "Digital %1 Sensor value ", - "Ardublock_toggle_led": "Digital %1 Pin %2 %3", - "Ardublock_toggle_pwm": "Digital %1 Pin %2 %3", "arduino_toggle_pwm": "Digital %1 Pin %2 %3", "dplay_toggle_pwm": "Digital %1 Pin %2 %3", "nemoino_toggle_pwm": "Digital %1 Pin %2 %3", diff --git a/app/lang/ko.js b/app/lang/ko.js index bf300a07f..f8761d2be 100644 --- a/app/lang/ko.js +++ b/app/lang/ko.js @@ -2324,13 +2324,14 @@ Lang.Menus = { "join_entry": "엔트리 회원 가입하기", "learned_computing": "기존에 소프트웨어 교육을 받아보셨나요?", "cparty_index_description_1": "두근두근 소프트웨어와 첫 만남.", - "cparty_index_description_2": "소프트웨어랑 재미있게 놀다 보면 소프트웨어의 원리도 배우고, 생각하는힘도 쑥쑥!", + "cparty_index_description_2": "소프트웨어랑 재미있게 놀다 보면 소프트웨어의 원리도 배우고, 생각하는 힘도 쑥쑥!", "cparty_index_description_3": "엔트리를 통해 코딩 미션에 도전하고 인증서 받으세요.", "cparty_index_description_4": "2015 Online Coding Party는", "cparty_index_description_5": "SW교육 체험 주간", "cparty_index_description_6": "의 일환으로써,", "cparty_index_description_7": "SW교육을 준비하는 선생님들의 모임", "cparty_index_description_8": "과 함께 만들어졌습니다.", + "cparty_index_description_9": "2016 Online Coding Party는", "congratulation": "축하 드립니다!", "warm_up": "체험", "beginner": "입문", @@ -3342,9 +3343,6 @@ Lang.template = { "nemoino_toggle_led": "디지털 %1 번 핀 %2 %3", "sensorBoard_toggle_led": "디지털 %1 번 핀 %2 %3", "CODEino_toggle_led": "디지털 %1 번 핀 %2 %3", - "Ardublock_get_digital_value": "디지털 %1 번 센서값 ", - "Ardublock_toggle_led": "디지털 %1 번 핀 %2 %3", - "Ardublock_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", "arduino_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", "dplay_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3", "nemoino_toggle_pwm": "디지털 %1 번 핀을 %2 (으)로 정하기 %3",