{"version":3,"sources":["locales/i18n.js","constants/api.js","modules/api/http.js","modules/api/index.js","modules/message.js","constants/fileTypes.js","modules/manualList.js","modules/catalog/catalogList.js","modules/catalog/catalogAuth.js","modules/auth.js","modules/countries.js","modules/categories.js","modules/models.js","modules/confirm.js","constants/formTypes.js","constants/fileTitle.js","modules/catalog/catalogForm.js","modules/api/doc.js","modules/doc/docList.js","constants/docTypes.js","modules/doc/docAuth.js","modules/doc/docForm.js","modules/api/common.js","modules/api/engine.js","modules/engine/engineList.js","modules/engine/engineAuth.js","modules/engineMakers.js","modules/engineModels.js","modules/engine/engineForm.js","modules/api/maintenance.js","modules/maintenance/maintenanceList.js","modules/maintenance/maintenanceAuth.js","modules/maintenance/maintenanceForm.js","modules/manualForm.js","reducer.js","saga.js","store.js","components/MainContainer.js","components/Message.js","containers/Message.js","components/ConfirmDialog.js","containers/ConfirmDialog.js","containers/PrivateRoute.js","components/Header.js","containers/Header.js","components/Loading.js","containers/Loading.js","components/Login.js","containers/Login.js","components/Menu.js","containers/Menu.js","components/CreateButton.js","containers/AdminOnly.js","components/NumberSelect.js","components/Manual/ManualTable.js","components/MultiSelect.js","components/FileDropzone.js","components/Shared/SharedDialog.js","components/Shared/CountriesImportDialog.js","components/Manual/SearchForm.js","services/pdf.service.js","modules/api/log.js","containers/ManualList.js","components/Manual/FormContent.js","components/Manual/FileSelectionForm.js","components/SelectableTable.js","components/Manual/ModelSelectionForm.js","components/SerialForm.js","components/Manual/DetailForm.js","components/BackButton.js","components/DeleteButton.js","containers/DeleteButton.js","components/Manual/ManualForm.js","containers/ManualForm.js","containers/Catalog/CatalogLogin.js","components/Catalog/CatalogTable.js","components/Catalog/CatalogSearchForm.js","containers/Catalog/CatalogList.js","components/Catalog/CatalogFormContent.js","components/Catalog/CatalogFileSelectionForm.js","components/Catalog/CatalogModelSelectionForm.js","components/ZipFileDropzone.js","components/Catalog/CatalogDetailForm.js","containers/Catalog/CatalogDeleteButton.js","components/Catalog/CatalogForm.js","containers/Catalog/CatalogForm.js","containers/Doc/DocLogin.js","components/Doc/DocTable.js","components/Doc/DocSearchForm.js","containers/Doc/DocList.js","components/Doc/DocFormContent.js","components/Doc/DocFileSelectionForm.js","components/Doc/DocModelSelectionForm.js","components/Doc/DocSerialForm.js","components/Doc/DocDetailForm.js","containers/Doc/DocDeleteButton.js","components/Doc/DocForm.js","containers/Doc/DocForm.js","containers/Engine/EngineLogin.js","components/Engine/EngineTable.js","components/Engine/EngineSearchForm.js","containers/Engine/EngineList.js","components/Engine/EngineFormContent.js","components/Engine/EngineFileSelectionForm.js","components/Engine/EngineModelSelectionForm.js","components/Engine/EngineDetailForm.js","containers/Engine/EngineDeleteButton.js","components/Engine/EngineForm.js","containers/Engine/EngineForm.js","components/NotFound.js","components/Footer.js","containers/Maintenance/MaintenanceLogin.js","components/Maintenance/MaintenanceTable.js","components/Maintenance/MaintenanceSearchForm.js","containers/Maintenance/MaintenanceList.js","components/Maintenance/MaintenanceFormContent.js","components/Maintenance/MaintenanceFileSelectionForm.js","components/Maintenance/MaintenanceModelSelectionForm.js","components/Maintenance/MaintenanceDetailForm.js","containers/Maintenance/MaintenanceDeleteButton.js","components/Maintenance/MaintenanceForm.js","containers/Maintenance/MaintenanceForm.js","Routes.js","App.js","serviceWorker.js","index.js","images/baroness_logo.png"],"names":["i18n","use","reactI18nextModule","init","fallbackLng","debug","resources","en","translation","enLocalesTranslationJson","ja","jaLocalesTranslationJson","lng","HOST","http","axios","create","baseURL","interceptors","request","config","accessToken","localStorage","getItem","headers","Authorization","concat","error","Promise","reject","response","status","refreshToken","header","post","then","_ref","data","setItem","access_token","refresh_token","catch","err","axiosRetry","retries","initialState","page","per_page","model_name","serial","version","file_types","CA","sort","key","order","categories","createQueryString","queries","destination","language","only_latest","lang","queryString","String","UM","PC","PU","SM","forEach","x","searchManualList","arguments","length","undefined","get","res","getFormattedTime","today","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","exportManualCsv","console","log","responseType","dataType","fileName","window","navigator","msSaveBlob","Blob","url","URL","createObjectURL","type","link","document","createElement","href","setAttribute","body","appendChild","click","uploadManualCsv","file","FormData","append","uploadCatalogCsv","checkFile","filename","fetchManual","id","deleteManual","delete","fetchCountries","selectedModels","item","map","code","country_code","iso_code","country_name","country_name_jp","fetchCategories","category_short_name","category_code","category_name","fetchModels","selectedCategories","model_code","fetchEngineMakers","engine_maker_code","engine_maker_name","engine_maker_name_en","fetchEngineModels","engine_model_code","engine_model_name","comment","saveFile","name","options","Content-Type","put","postNewManual","postData","changeLogFile","manual","change_log_file_name","resp","putManual","putData","postUpgradeManual","upgradeTargetId","searchCatalogList","exportCatalogCsv","fetchCatalog","deleteCatalog","postNewCatalog","zipFile","catalog","zip_file_name","putCatalog","downloadFile","file_name","method","getAccessToken","account","getAdminAccessToken","cookie","_ref2","login","_ref3","username","password","_ref4","adminLogin","_ref5","_ref6","refreshLogin","_ref7","showMessage","createAction","hideMessage","isShowing","content","handleActions","_handleActions","Object","defineProperty","state","action","payload","handleSearchManualList","handlePagingManualList","handleUploadCsv","handleExportCsv","handleMenuSelected","handlePageChanged","handlePerPageChanged","handleSortChanged","handleDownloadRequest","MENU_SELECTED","SEARCH_REQUEST","PAGING_REQUEST","UPLOAD_CSV_REQUEST","EXPORT_CSV_REQUEST","PAGE_CHANGED","PER_PAGE_CHANGED","SORT_CHANGED","DOWNLOAD_REQUEST","menuSelected","resetAll","resetQueries","searchRequest","searchSuccess","searchFailure","pagingRequest","pagingSuccess","pagingFailure","setUploadFile","uploadCsvRequest","uploadCsvSuccess","uploadCsvFailed","exportCsvRequest","exportCsvSuccess","exportCsvFailed","inputChanged","fileTypeChanged","pageChanged","perPageChanged","sortChanged","downloadRequest","downloadSuccess","downloadFailed","isLoading","upload_file","manualList_handleActions","fileTypes","objectSpread","value","_sort","getQueries","manualList","getUploadFile","getLang","auth","context","regenerator_default","a","wrap","_context","prev","next","take","sent","select","call","stop","_marked","_context2","_marked2","uploadFile","_context3","messageModule","t","_marked3","_context4","_marked4","_context5","history","push","_marked5","_context6","_marked6","_context7","_marked7","_context8","_marked8","_context9","_marked9","sagas","handleSearchCatalogList","handlePagingCatalogList","catalogList_handleActions","catalogList","catalogList_marked","catalogList_marked2","catalogList_marked3","catalogList_marked4","catalogList_marked5","catalogList_marked6","catalogList_marked7","catalogList_marked8","catalogList_marked9","handleLoginRequest","handleLoginSuccess","handleAdminLoginRequest","handleAdminLoginSuccess","handleRefreshRequest","handleRefreshSuccess","handleAutoLoginRequest","handleAutoLoginSuccess","handleAutoAdminLoginRequest","handleAutoAdminLoginSuccess","handleLogout","LOGIN_REQUEST","LOGIN_SUCCESS","ADMIN_LOGIN_REQUEST","ADMIN_LOGIN_SUCCESS","REFRESH_REQUEST","REFRESH_SUCCESS","AUTO_LOGIN_REQUEST","AUTO_LOGIN_SUCCESS","AUTO_ADMIN_LOGIN_REQUEST","AUTO_ADMIN_LOGIN_SUCCESS","LOGOUT","loginRequest","loginSuccess","loginFailed","adminLoginRequest","adminLoginSuccess","adminLoginFailed","refreshSuccess","autoLoginRequest","autoLoginSuccess","autoLoginFailed","autoLoginStopped","autoAdminLoginRequest","autoAdminLoginSuccess","autoAdminLoginFailed","autoAdminLoginStopped","logout","changeLanguage","formChanged","isLoggedIn","user_name","country_id","is_superuser","form","catalogAuth_handleActions","loginForm","i18next","getLoginForm","catalogAuth","getIsLoggedIn","catalogAuth_marked","catalogAuth_marked2","catalogAuth_marked3","catalogAuth_marked4","catalogAuth_marked5","catalogAuth_marked6","catalogAuth_marked7","t0","t1","catalogListModule","t2","t3","catalogAuth_marked8","catalogAuth_marked9","_context10","_marked10","isAdmin","_context11","removeItem","_marked11","refreshRequest","auth_handleActions","auth_marked","auth_marked2","auth_marked3","auth_marked4","auth_marked5","auth_marked6","manualListModule","auth_marked7","auth_marked8","auth_marked9","auth_marked10","isSuperuser","loginType","catalogAuthModule","auth_marked11","handleFetchCountries","FETCH_REQUEST","fetchRequest","fetchSuccess","fetchFailed","countries_handleActions","countries_marked","handleFetchCategories","categories_handleActions","categories_marked","handleFetchModels","models_handleActions","models_marked","showConfirm","hideConfirm","confirm_handleActions","title","actions","ok","cancel","NEW","EDIT","UPGRADE","fileTitle","title_ja","title_en","Evapo","EU_Doc","UK_Doc","US_Regs","FR","handlePutSuccess","handlePostNewSuccess","handlePostUpgradeSuccess","handleSelectedFile","handleSelectedFileFailed","handleSelectedFileSuccess","handleSelectedZipFile","handleSelectedZipFileFailed","handleFetchCatalog","handleFetchSuccess","handlePutCatalog","handlePostNewCatalog","handleOpenNewForm","handleOpenUpgradeForm","handleOpenEditForm","handleBackToList","handleDeleteCatalog","handleCategoriesSelected","handleModelsSelected","handleStepNextRequest","activeStep","formType","hasFormOpened","isUploading","isDeleting","isSerialEditable","file_type","binding","form_size","page_num","overview_ja","overview_en","evapor","eu_declaration","display","new_serials","serials","models","countries","editable_max_version","FETCH_SUCCESS","POST_NEW_REQUEST","POST_NEW_SUCCESS","POST_UPGRADE_SUCCESS","PUT_REQUEST","PUT_SUCCESS","DELETE_REQUEST","OPEN_NEW","OPEN_EDIT","OPEN_UPGRADE","STEP_NEXT_REQUEST","BACK_TO_LIST","FILE_SELECTED","FILE_SELECTED_SUCCESS","FILE_SELECTED_FAILED","CHANGE_LOG_FILE_SELECTED","CHANGE_LOG_FILE_FAILED","CATEGORIES_SELECTED","MODELS_SELECTED","postNewRequest","postNewSuccess","postNewFailed","postUpgradeRequest","putRequest","putSuccess","putFailed","deleteRequest","deleteSuccess","deleteFailed","resetForm","openNew","openEdit","openUpgrade","stepNextRequest","stepNext","stepBack","stepReset","backToList","fileSelected","fileSelectedSuccess","fileSelectedFailed","changeLogFileSelected","changeLogFileSuccess","changeLogFileFailed","serialChanged","pastSerialChanged","categoriesSelected","modelsSelected","countriesSelected","prepareUpgrade","catalogForm_handleActions","formTypes","_action$payload","modelId","Math","max","apply","toConsumableArray","m","getRelativeVer","model_id","is_end_editable","start_serial","end_serial","_action$payload2","catalogId","catalog_id","modelName","substring","replace","fileType","startsWith","getCategories","getModels","getSelectedCategories","catalogForm","getSelectedModels","getCatalogForm","getPostNewData","getPostUpgradeData","getPutData","getCatalog","getFile","getZipFile","getFormType","getUpgradeTargetId","catalogForm_marked","catalogForm_marked2","catalogForm_marked3","catalogForm_marked4","catalogForm_marked5","_loop","category","_ret","mark","abrupt","v","some","delegateYield","catalogForm_marked6","catalogForm_marked7","catalogForm_marked8","catalogForm_marked9","catalogForm_marked10","_context12","catalogForm_marked11","_context13","_marked12","_context14","categoriesAction","_marked13","_context15","_marked14","_context16","_marked15","_context17","channel","confirmModule","_marked16","_context18","_marked17","_loop2","_context20","_selectedCategories","_selectedModels","_context19","filter","includes","s","modelsAction","_marked18","_context21","countriesAction","_marked19","xSplit","split","Number","currentStep","_context22","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","_marked20","compiler","control_number","declaration_date","EV","EU","UK","US","searchDocList","exportDocCsv","uploadDocCsv","fetchDoc","deleteDoc","postNewDoc","doc","putDoc","handleSearchDocList","handlePagingDocList","docList_handleActions","docList","docList_marked","docList_marked2","docList_marked3","docList_marked4","docList_marked5","docList_marked6","docList_marked7","docList_marked8","docList_marked9","US_COUNTRY_IDS","UK_COUNTRY_IDS","EU_COUNTRY_IDS","setFileTypeByCountryId","docAuth_handleActions","docAuth","docAuth_marked","docAuth_marked2","docAuth_marked3","docAuth_marked4","docAuth_marked5","docAuth_marked6","docAuth_marked7","docListModule","docAuth_marked8","docAuth_marked9","docAuth_marked10","docAuth_marked11","countryId","docAuth_marked12","handleFetchDoc","handlePutDoc","handlePostNewDoc","handleDeleteDoc","docForm_handleActions","docId","doc_id","controlNumber","fileNameSplit","year","_unused","model_ids","serial_id","findIndex","b","docForm","getDocForm","getDoc","docForm_marked","docForm_marked2","docForm_marked3","docForm_marked4","docForm_marked5","docForm_marked6","docForm_marked7","docForm_marked8","docForm_marked9","docForm_marked10","docForm_marked11","docForm_marked12","docForm_marked13","docForm_marked14","docForm_marked15","docForm_marked16","docForm_marked17","docForm_marked18","docForm_marked19","every","docForm_marked20","URI","KEY","engine_makers","searchList","exportCsv","uploadCsv","fetchItem","deleteItem","postNewItem","putItem","postUpgradeItem","handleSearchEngineList","handlePagingEngineList","engineList_handleActions","engineList","engineList_marked","engineList_marked2","engineList_marked3","engineList_marked4","engineList_marked5","engineList_marked6","engineList_marked7","engineList_marked8","engineList_marked9","engineAuth_handleActions","engineAuth","engineAuth_marked","engineAuth_marked2","engineAuth_marked3","engineAuth_marked4","engineAuth_marked5","engineAuth_marked6","engineAuth_marked7","engineListModule","engineAuth_marked8","engineAuth_marked9","engineAuth_marked10","engineAuth_marked11","engineAuth_marked12","handleFetchEngineMakers","engineMakers_handleActions","engineMakers_marked","handleFetchEngineModels","engineModels_handleActions","engineModels_marked","handleSelectedChangeLogFile","handleSelectedChangeLogFileFailed","handleFetchEngine","handlePutEngine","handlePostUpgradeEngine","handlePostNewEngine","handleDeleteEngine","handleEngineMakersSelected","engine","is_allowed_online_document","engineMakers","engineModels","POST_UPGRADE_REQUEST","ENGINE_MAKERS_SELECTED","postUpgradeSuccess","postUpgradeFailed","engineMakersSelected","engineModelsSelected","engineForm_handleActions","engine_models","engineId","engine_id","maxSerial","newSerials","engineForm","getSelectedEngineMakers","getSelectedEngineModels","getEngineForm","getEngine","getChangeLogFile","getIsSerialEditable","engineForm_marked","engineForm_marked2","engineForm_marked3","engineForm_marked4","engineForm_marked5","engineForm_marked6","engineForm_marked7","engineForm_marked8","engineForm_marked9","engineForm_marked10","engineForm_marked11","engineForm_marked12","engineForm_marked13","engineMakersAction","engineForm_marked14","engineForm_marked15","engineForm_marked16","engineForm_marked17","engineForm_marked18","engineForm_marked19","engineModelsAction","engineForm_marked20","_context23","_marked21","minVersion","_context24","_marked22","handleSearchMaintenanceList","handlePagingMaintenanceList","maintenanceList_handleActions","maintenanceList","maintenanceList_marked","maintenanceList_marked2","maintenanceList_marked3","maintenanceList_marked4","maintenanceList_marked5","maintenanceList_marked6","maintenanceList_marked7","maintenanceList_marked8","maintenanceList_marked9","maintenanceAuth_handleActions","maintenanceAuth","maintenanceAuth_marked","maintenanceAuth_marked2","maintenanceAuth_marked3","maintenanceAuth_marked4","maintenanceAuth_marked5","maintenanceAuth_marked6","maintenanceAuth_marked7","maintenanceListModule","maintenanceAuth_marked8","maintenanceAuth_marked9","maintenanceAuth_marked10","maintenanceAuth_marked11","maintenanceAuth_marked12","handleFetchMaintenance","handlePutMaintenance","handlePostUpgradeMaintenance","handlePostNewMaintenance","handleDeleteMaintenance","maintenance","maintenanceForm_handleActions","maintenanceId","maintenance_id","maintenanceForm","getMaintenanceForm","getMaintenance","maintenanceForm_marked","maintenanceForm_marked2","maintenanceForm_marked3","maintenanceForm_marked4","maintenanceForm_marked5","maintenanceForm_marked6","maintenanceForm_marked7","maintenanceForm_marked8","maintenanceForm_marked9","maintenanceForm_marked10","maintenanceForm_marked11","maintenanceForm_marked12","maintenanceForm_marked13","maintenanceForm_marked14","maintenanceForm_marked15","maintenanceForm_marked16","maintenanceForm_marked17","maintenanceForm_marked18","maintenanceForm_marked19","maintenanceForm_marked20","maintenanceForm_marked21","handleFetchManual","handlePutManual","handlePostUpgradeManual","handlePostNewManual","handleDeleteManual","manualForm_handleActions","manualId","manual_id","manualForm","getManualForm","getManual","manualForm_marked","manualForm_marked2","manualForm_marked3","manualForm_marked4","manualForm_marked5","manualForm_marked6","manualForm_marked7","manualForm_marked8","manualForm_marked9","manualForm_marked10","manualForm_marked11","manualForm_marked12","manualForm_marked13","manualForm_marked14","manualForm_marked15","manualForm_marked16","manualForm_marked17","manualForm_marked18","manualForm_marked19","manualForm_marked20","manualForm_marked21","combineReducers","message","confirm","rootSaga","allSagas","all","f","saga_marked","createHistory","basename","routing","routerMiddleware","withStyles","theme","container","margin","spacing","unit","props","classes","react_default","className","children","variantIcon","success","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","MessageContentWrapper","backgroundColor","green","palette","dark","primary","amber","icon","fontSize","iconVariant","opacity","marginRight","alignItems","onClose","variant","other","objectWithoutProperties","Icon","SnackbarContent_default","assign","classNames","aria-describedby","IconButton_default","aria-label","color","close","onClick","Close_default","Message","open","handleClick","_this","setState","handleClose","event","reason","nextProps","this","_this$props","Snackbar_default","anchorOrigin","vertical","horizontal","autoHideDuration","onExited","handleHideMessage","React","Component","connect","dispatch","ConfirmDialog","handleHideConfirm","Dialog_default","aria-labelledby","fullWidth","maxWidth","DialogTitle_default","DialogContent_default","DialogContentText_default","DialogActions_default","Button_default","autoFocus","PrivateRoute","component","rest","Route","render","Redirect","to","pathname","from","location","isLoggedin","styles","root","flexGrow","maxHeight","toolbar","paddingLeft","minHeight","logo","height","padding","grow","menuButton","marginLeft","textTransform","width","adminMenuButton","actionButton","&:hover","actionMenu","paddingRight","withRouter","currentUrl","linkToHome","nextLang","AppBar_default","position","Toolbar_default","src","alt","isProductUrl","indexOf","getTitle","Typography_default","Home_default","authModule","Header","isWaiting","LinearProgress_default","Loading","Login","classCallCheck","possibleConstructorReturn","getPrototypeOf","autoLogin","URLSearchParams","search","handleAutoAdminLogin","_this$props2","handleLogin","handleAdminLogin","handleInputChange","onInputChanged","target","main","CssBaseline_default","Paper_default","paper","FormControl_default","required","InputLabel_default","htmlFor","Input_default","autoComplete","onChange","submit","breakpoints","up","marginTop","flexDirection","avatar","secondary","passowrd","ownProps","menuItems","button","layout","size","Menu","CreateButton","Fab_default","Add_default","propsType","PropTypes","object","isRequired","func","top","right","bottom","left","hide","selected","dataSource","Select_default","num","index","MenuItem_default","ManualTable","checkedRow","SelectRow","_this2","count","_this$props3","handleOpenPDF","handleUpgrade","handleDownload","handleEdit","totalPages","floor","getHeaders","adminHeaders","clientHeaders","createSortHandler","property","onRequestSort","overview","label","Table_default","table","TableHead_default","stickyHeader","TableRow_default","TableCell_default","align","style","TableSortLabel_default","active","direction","containers_AdminOnly","TableBody_default","row","Popup","on","inverted","trigger","rowSelected","e","aligin","x1","x2","x3","dist_default","tz","format","moment","Fragment","Create_default","is_latest","ArrowUpward_default","GetApp_default","createTableCell","tableFooter","components_NumberSelect","Pagination","activePage","onPageChange","overflowX","tableLayout","background","handleChange","index_es","shrink","labelId","multiple","input","displayEmpty","renderValue","find","join","Checkbox_default","checked","draggableArea","justifyContent","borderWidth","borderColor","borderStyle","borderRadius","coloe","onFileSelected","accept","_accept","fileDropAreaComment","fileDroppingAreaComment","react_dropzone_dist_es","onDrop","files","alert","getRootProps","getInputProps","isDragActive","dropzone--isActive","SharedDialog","handleClickOpen","buttonTitle","dialogTitle","handleOK","handleOpen","handleCancel","RawSharedDialog","CountriesImportDialog","Publish_default","components_FileDropzone","textField","searchButton","float","handleSubmit","handleFileTypeChange","uploadFileName","uploadFileSelected","handleUploadOK","handleUploadCancel","handleChangeInput","handleChangeCheckbox","Grid_default","md","xs","noValidate","FormGroup_default","TextField_default","InputLabelProps","components_MultiSelect","ids","FormControlLabel_default","control","Switch_default","handleChangeSwitch","Search_default","CountriesImportDialog_CountriesImportDialog","openPDF","pos","lastIndexOf","slice","getExt","toLowerCase","createDownloadLog","ManualList","setLanguage","params","match","Manual_SearchForm","Manual_ManualTable","components_CreateButton","manuals","categoryAction","getListItem","ListItem_default","ListItemText_default","listItemText","step","Card_default","raised","CardContent_default","List_default","RadioGroup_default","Radio_default","desc","orderBy","EnhancedTableHead","rows","onSelectAllClick","numSelected","rowCount","indeterminate","numeric","disablePadding","sortDirection","Tooltip_default","placement","enterDelay","SelectableTable","_this3","rowsPerPage","handleRequestSort","handleSelectAllClick","n","selectedIndex","newSelected","updateState","handleChangePage","handleChangeRowsPerPage","isSelected","getSelectedIds","displayKey","localeCompare","_this4","displayField","_this$state","emptyRows","min","Shared_SharedDialog","tableWrapper","SelectableTable_EnhancedTableHead","array","cmp","stabilizedThis","el","stableSort","getSorting","hover","role","aria-checked","tabIndex","colSpan","Chip_default","chip","minWidth","dotRoot","dot","handleSelectedCategories","handleSelectedModels","ver1","ver2","ver3","ver_split","val","toFixed","categoryRows","modelRows","components_SelectableTable","FormLabel_default","inputProps","numberCell","textAlign","handleSerialChanged","handlePastSerialChanged","onSerialChanged","scope","is_start_editable","multiTextField","handleSelectedCountries","handleOnChangeLogFileSelected","selectedCountries","changeLogFileName","maxLen","rawInput","SelectProps","MenuProps","multiline","unSelectableIds","disabled","BackButton","cancelText","DeleteButton","handleConfirm","handleDelete","confirmContent","Delete_default","deleteText","manualModule","Container","justify","Divider_default","getStepContent","stepIndex","Manual_FileSelectionForm","hasFile","handleOnFileSelected","Manual_ModelSelectionForm","newData","is_new","aSplit","a1","a2","a3","bSplit","sortByVersion","components_SerialForm","Manual_DetailForm","backButton","instructions","marginBottom","handleNext","handleBack","handleReset","handleBackTo","steps","Stepper_default","alternativeLabel","Step_default","StepLabel_default","ManualForm_Container","sm","Manual_FormContent","components_BackButton","FormType","containers_DeleteButton","handleFileSelected","ManualForm","CatalogTable","tableData","wordBreak","CatalogList","CatalogSearchForm","Catalog_CatalogTable","catalogs","zipFileName","components_ZipFileDropzone","catalogModule","CatalogForm_Container","Catalog_CatalogFileSelectionForm","Catalog_CatalogModelSelectionForm","Catalog_CatalogDetailForm","Catalog_CatalogFormContent","CatalogDeleteButton","CatalogForm","docAuthModule","DocTable","DocList","DocSearchForm","Doc_DocTable","docs","docTypes","docModule","DocForm_Container","Doc_DocFileSelectionForm","Doc_DocModelSelectionForm","Doc_DocSerialForm","Doc_DocDetailForm","Doc_DocFormContent","DocDeleteButton","DocForm","EngineTable","tableItem","overflowWrap","handleChangeCategories","EngineList","EngineSearchForm","maker","Engine_EngineTable","engines","engineMakerAction","selectedEngineMakers","selectedEngineModels","handleSelectedEngineMakers","handleSelectedEngineModels","engineMakerRows","engineModelRows","engineModule","EngineFileSelectionForm","EngineModelSelectionForm","EngineDetailForm","EngineForm_Container","EngineFormContent","EngineDeleteButton","EngineForm","NotFound","footer","footerContent","MaintenanceList","MaintenanceSearchForm","MaintenanceTable","maintenances","maintenanceModule","MaintenanceFileSelectionForm","MaintenanceModelSelectionForm","MaintenanceDetailForm","MaintenanceForm_Container","MaintenanceFormContent","MaintenanceDeleteButton","MaintenanceForm","Routes","Router","flex","containers_Header","containers_Loading","components_MainContainer","Switch","exact","path","containers_Login","CatalogLogin","EngineLogin","MaintenanceLogin","DocLogin","containers_PrivateRoute","containers_Message","containers_ConfirmDialog","components_Footer","Main","translate","src_Routes","App","react_i18next_dist_es","Boolean","hostname","store","sagaMiddleware","createSagaMiddleware","middlewares","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","applyMiddleware","logger","createStore","rootReducer","run","configureStore","ReactDOM","es","src_App","getElementById","serviceWorker","ready","registration","unregister","module","exports","__webpack_require__","p"],"mappings":"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","file":"static/js/main.ef08dd27.chunk.js","sourcesContent":["//https://qiita.com/59naga/items/4a19cfcc25cd42c1a170\r\nimport i18n from \"i18next\";\r\nimport enLocalesTranslationJson from './en'\r\nimport jaLocalesTranslationJson from './ja'\r\nimport { reactI18nextModule } from \"react-i18next\";\r\n\r\ni18n\r\n .use(reactI18nextModule)\r\n .init({\r\n fallbackLng: 'ja',\r\n debug: true,\r\n resources: {\r\n en: {\r\n translation: enLocalesTranslationJson\r\n },\r\n ja: {\r\n translation: jaLocalesTranslationJson\r\n }\r\n },\r\n lng: 'ja'\r\n });\r\n\r\nexport default i18n;\r\n","//API\r\nconst _HOST = () => {\r\n if (process.env.NODE_ENV == 'production') {\r\n //production\r\n return 'https://baroness-international.com/online_manual';\r\n //test production\r\n //return 'http://baroness-international.com/online_manual_test';\r\n }\r\n else {\r\n return 'http://localhost:5000';\r\n }\r\n}\r\nexport const HOST = _HOST();\r\n\r\n\r\n/**PDF表示時のS3のURI */\r\n//production\r\n//export const S3_URI = \"https://online-manual-test.s3.ap-northeast-1.amazonaws.com\";\r\n//test\r\nexport const S3_URI = \"https://online-manual.s3.ap-northeast-1.amazonaws.com\";\r\n","import axios from 'axios'\r\nimport axiosRetry from 'axios-retry';\r\nimport { HOST } from '../../constants/api'\r\n\r\nconst http = axios.create({\r\n baseURL: HOST\r\n})\r\n\r\n\r\n//リクエストハンドリング\r\nhttp.interceptors.request.use((config) => {\r\n const accessToken = localStorage.getItem('accessToken');\r\n if (accessToken) {\r\n config.headers.Authorization = `Bearer ${accessToken}`\r\n return config\r\n }\r\n return config\r\n}, function (error) {\r\n return Promise.reject(error)\r\n})\r\n\r\n//レスポンスハンドリング\r\nhttp.interceptors.response.use((response) => {\r\n return response\r\n }, function (error) {\r\n if (error.response.status === 401){\r\n const refreshToken = localStorage.getItem('refreshToken');\r\n if(refreshToken){\r\n const header = {'Authorization': `Bearer ${refreshToken}`};\r\n return axios.post(`${HOST}/api/auth/refresh`, '', { headers: header })\r\n .then(({data}) => {\r\n localStorage.setItem('accessToken', data.access_token);\r\n localStorage.setItem('refreshToken', data.refresh_token);\r\n return http.request(error.config);\r\n })\r\n .catch((err) => {\r\n return Promise.reject(err);\r\n })\r\n }\r\n }\r\n return Promise.reject(error)\r\n })\r\n\r\n//失敗時に3回のリトライを実施する\r\naxiosRetry(http, { retries: 3 })\r\n\r\nexport default http\r\n","/*\n * API関連処理\n * 時間があれば、ファイル分割する\n * 時間があれば、失敗時はnullではなくエラーを返してメッセージ表示させる\n */\nimport axios from 'axios'\nimport http from './http'\nimport {HOST} from '../../constants/api';\n\nexport const initialState = {\n page: 0,\n per_page: 10,\n model_name: '',\n serial: '',\n version: '',\n file_types: {\n CA: true\n },\n sort: {\n key: '',\n order: ''\n },\n categories: [],\n}\n\n//(検索・CSV出力用) クエリ文字列の作成\n//Axiosの場合パラーメータとして直接渡せるらしいので、時間があれば変更する\nexport const createQueryString = (queries) => {\n const {page, per_page, model_name, serial, version, destination, language, file_types, only_latest, sort, categories, lang} = queries;\n\n var queryString = \"?\";\n queryString += \"page=\" + String(page);\n queryString += \"&per_page=\" + per_page;\n if(model_name){\n queryString += \"&model_name=\" + model_name;\n }\n if(serial){\n queryString += \"&serial=\" + serial;\n }\n if(version){\n queryString += \"&version=\" + version;\n }\n if(destination){\n queryString += \"&destination=\" + destination;\n }\n if(language){\n queryString += \"&language=\" + language;\n }\n if (file_types.UM){\n queryString += \"&file_type=UM\";\n }\n if (file_types.PC){\n queryString += \"&file_type=PC\";\n }\n if (file_types.PU){\n queryString += \"&file_type=PU\";\n }\n if (file_types.SM){\n queryString += \"&file_type=SM\";\n }\n if (sort && sort.key && sort.order) {\n queryString += \"&sort=\" + sort.key;\n queryString += \"&order=\" + sort.order;\n }\n if(categories) {\n categories.forEach(x => {\n queryString += \"&categories=\" + x;\n }); \n }\n queryString += `&only_latest=${only_latest}`;\n if(lang) {\n queryString += `&lang=${lang}`;\n }\n return queryString;\n}\n\n\n//マニュアル検索\nexport const searchManualList = (queries=initialState) => {\n return http.get('api/manuals'+createQueryString(queries))\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//ファイル名用の日付文字列取得\nexport const getFormattedTime = () => {\n var today = new Date();\n var y = today.getFullYear();\n // JavaScript months are 0-based.\n var m = today.getMonth() + 1;\n var d = today.getDate();\n var h = today.getHours();\n var mi = today.getMinutes();\n var s = today.getSeconds();\n return y + \"-\" + m + \"-\" + d + \"-\" + h + \"-\" + mi + \"-\" + s;\n}\n\n//マニュアルCSV出力\nexport const exportManualCsv = (queries=initialState) => {\n console.log(queries);\n console.log(createQueryString(queries));\n return http.get(\"/api/manuals/csv\"+createQueryString(queries),\n { responseType:'blob', dataType:'binary'})\n .then((response) => {\n const fileName = `manual_${getFormattedTime()}.csv`;\n\n if (window.navigator.msSaveBlob) {\n // for IE\n window.navigator.msSaveBlob(new Blob([response.data]), fileName);\n }\n else {\n const url = window.URL.createObjectURL(new Blob([response.data], {type: `text/csv`}));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', fileName); //or any other extension\n document.body.appendChild(link);\n link.click();\n }\n })\n .catch( res => {\n return null;\n })\n .catch( err => {\n return null\n })\n}\n\n/**マニュアルCSVアップロード */\nexport const uploadManualCsv = (file) => {\n const data = new FormData();\n data.append('csvfile', file)\n return http.post(\"/api/manuals/csv/upload\", data)\n .then( res => {\n return res;\n })\n .catch((error) => {\n if (error.response) {\n return error.response;\n } \n else {\n return null;\n }\n });\n}\n\n/**カタログCSVアップロード */\nexport const uploadCatalogCsv = (file) => {\n const data = new FormData();\n data.append('csvfile', file)\n return http.post(\"/api/catalogs/csv/upload\", data)\n .then( res => {\n return res;\n })\n .catch((error) => {\n if (error.response) {\n return error.response;\n } \n else {\n return null;\n }\n });\n}\n\n\nexport const checkFile = (filename) => {\n return http.get('/api/files/is_valid/' + filename)\n .then( res => {\n return 'ok';\n })\n .catch( res => {\n return null;\n })\n}\n\n//マニュアルデータ取得\nexport const fetchManual = (id) => {\n return http.get(`api/manuals/${id}`)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//マニュアルデータ削除\nexport const deleteManual = (id) => {\n return http.delete(`api/manuals/${id}`)\n .then( res => {\n return `Success delete the file ${id}`\n })\n .catch( err => {\n return null;\n })\n}\n\n//国一覧取得\nexport const fetchCountries = (selectedModels) => {\n var queryString = '?';\n if(selectedModels){\n selectedModels.forEach(item => {\n queryString += \"model=\" + item + \"&\";\n })\n }\n return http.get(`api/countries${queryString}`)\n .then( res => {\n return res.data.map(item => {\n return {\n id: item.code,\n country_code: item.iso_code,\n country_name: item.country_name_jp\n }\n })\n })\n .catch( err => {\n return null\n })\n}\n\n//カテゴリ一覧取得\nexport const fetchCategories = () => {\n return http.get('api/categories')\n .then( res => {\n return res.data.map(item => {\n return {\n id: item.code,\n category_short_name: item.category_code,\n category_name: item.category_name,\n }\n })\n })\n .catch( err => {\n return null\n })\n}\n\n//機種一覧取得\nexport const fetchModels = (selectedCategories) => {\n var queryString = '?';\n if(selectedCategories){\n selectedCategories.forEach(item => {\n queryString += \"category=\" + item + \"&\";\n })\n }\n return http.get(`/api/models${queryString}`)\n .then( res => {\n return res.data.map(item => {\n return {\n id: item.code,\n category_code: item.category_code,\n model_code: item.model_code\n }\n })\n })\n .catch( err => {\n return null\n })\n}\n\n//エンジンメーカー一覧取得\nexport const fetchEngineMakers = () => {\n return http.get('api/engine_makers')\n .then( res => {\n return res.data.map(item => {\n return {\n id: item.code,\n engine_maker_code: item.engine_maker_code,\n engine_maker_name: item.engine_maker_name,\n engine_maker_name_en: item.engine_maker_name_en,\n }\n })\n })\n .catch( err => {\n return null\n })\n}\n\n//エンジン型式一覧取得\nexport const fetchEngineModels = (selectedCategories) => {\n var queryString = '?';\n if(selectedCategories){\n selectedCategories.forEach(item => {\n queryString += \"engine_maker=\" + item + \"&\";\n })\n }\n return http.get(`/api/engine_models${queryString}`)\n .then( res => {\n return res.data.map(item => {\n return {\n id: item.code,\n engine_model_code: item.engine_model_code,\n engine_model_name: item.comment\n }\n })\n })\n .catch( err => {\n return null\n })\n}\n\n\n//ファイル保存\nexport const saveFile = (file) => {\n return http.get(`/api/files/upload_url/${file.name}?content_type=${file.type}`)\n .then(res => {\n const options = {\n headers: {\n 'Content-Type': file.type\n }\n };\n return axios.put(res.data.url, file, options)\n })\n}\n\n//マニュアル新規登録\nexport const postNewManual = (file, postData, changeLogFile) => {\n //IDは含めない\n delete postData.manual.id;\n return saveFile(file)\n .then(res => {\n if(changeLogFile) {\n saveFile(changeLogFile);\n }else{\n delete postData.manual.change_log_file_name;\n }\n })\n .then( resp => {\n return http.post(\"/api/manuals\", postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n\n\n//マニュアルデータ更新\nexport const putManual = (file, putData, changeLogFile) => {\n if (file){\n saveFile(file);\n }\n if (changeLogFile){\n saveFile(changeLogFile);\n }\n return http.put(`/api/manuals/${putData.manual.id}`, putData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//マニュアルアップグレード\nexport const postUpgradeManual = (upgradeTargetId, file, postData, changeLogFile) => {\n //IDは含めない\n delete postData.manual.id;\n return saveFile(file)\n .then(res => {\n if(changeLogFile) {\n saveFile(changeLogFile);\n }else{\n delete postData.manual.change_log_file_name;\n }\n })\n .then( resp => {\n return http.post(`/api/manuals/${upgradeTargetId}/upgrade`, postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n\n//カタログ検索\nexport const searchCatalogList = (queries=initialState) => {\n return http.get('api/catalogs'+createQueryString(queries))\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//カタログCSV出力\nexport const exportCatalogCsv = (queries=initialState) => {\n return http.get(\"/api/catalogs/csv\"+createQueryString(queries),\n { responseType:'blob', dataType:'binary'})\n .then((response) => {\n const fileName = `catalog_${getFormattedTime()}.csv`;\n\n if (window.navigator.msSaveBlob) {\n // for IE\n window.navigator.msSaveBlob(new Blob([response.data]), fileName);\n }\n else {\n const url = window.URL.createObjectURL(new Blob([response.data], {type: `text/csv`}));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', fileName); //or any other extension\n document.body.appendChild(link);\n link.click();\n }\n })\n .catch( res => {\n return null;\n })\n .catch( err => {\n return null\n })\n}\n\n//カタログデータ取得\nexport const fetchCatalog = (id) => {\n return http.get(`api/catalogs/${id}`)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//カタログデータ削除\nexport const deleteCatalog = (id) => {\n return http.delete(`api/catalogs/${id}`)\n .then( res => {\n return `Success delete the file ${id}`\n })\n .catch( err => {\n return null;\n })\n}\n\n\n//カタログ新規登録\nexport const postNewCatalog = (file, postData, zipFile) => {\n //IDは含めない\n delete postData.catalog.id;\n return saveFile(file)\n .then(res => {\n if(zipFile) {\n console.log(\"zip exists\");\n saveFile(zipFile);\n }else{\n console.log(\"zip not exists\");\n delete postData.catalog.zip_file_name;\n }\n })\n .then( resp => {\n return http.post(\"/api/catalogs\", postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n\n\n//カタログデータ更新\nexport const putCatalog = (file, putData, zipFile) => {\n if (file){\n saveFile(file);\n }\n if (zipFile){\n saveFile(zipFile);\n }\n return http.put(`/api/catalogs/${putData.catalog.id}`, putData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//カタログアップグレード\nexport const postUpgradeCatalog = (upgradeTargetId, file, postData, zipFile) => {\n //IDは含めない\n delete postData.catalog.id;\n return saveFile(file)\n .then(res => {\n if(!!zipFile) {\n saveFile(zipFile);\n }else{\n delete postData.catalog.zip_file_name;\n }\n })\n .then( resp => {\n return http.post(`/api/catalogs/${upgradeTargetId}/upgrade`, postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n\n//ファイルダウンロード\nexport const downloadFile = (file_name) => {\n return http.get(`/api/files/download_url/${file_name}`)\n .then(res => {\n return axios({\n url: res.data.url,\n method: 'GET',\n responseType: 'blob', // important\n })\n .then((response) => {\n if (window.navigator.msSaveBlob) {\n // for IE\n window.navigator.msSaveBlob(new Blob([response.data]), file_name);\n }\n else {\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', file_name);\n document.body.appendChild(link);\n link.click();\n }\n })\n .catch( res => {\n return null;\n })\n })\n .catch( res => {\n return null;\n })\n}\n\n\n//自動ログイン\nexport const getAccessToken = () => {\n return http.get('/api/auth/token')\n .then(({data}) => {\n localStorage.setItem('accessToken', data.access_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n return data.account;\n })\n .catch((err) => {\n return null;\n })\n}\n\n//管理者用自動ログイン\nexport const getAdminAccessToken = (cookie) => {\n return http.get(`/api/auth/token/admin/${cookie}`)\n .then(({data}) => {\n localStorage.setItem('accessToken', data.access_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n return data.account;\n })\n .catch((err) => {\n return null;\n })\n}\n\n//ログイン\nexport const login = ({username, password}) => {\n return http.post('/api/auth/login',\n {\n 'username': username,\n 'password': password\n })\n .then(({data}) => {\n localStorage.setItem('accessToken', data.access_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n return data.account;\n })\n .catch((err) => {\n return null;\n })\n}\n\n//管理者ログイン\nexport const adminLogin = ({username, password}) => {\n return http.post('/api/auth/login/admin',\n {\n 'username': username,\n 'password': password\n })\n .then(({data}) => {\n localStorage.setItem('accessToken', data.access_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n return data.account;\n })\n .catch((err) => {\n return null;\n })\n}\n\n//リフレッシュトークンからのログイン\nexport const refreshLogin = () => {\n const refreshToken = localStorage.getItem('refreshToken');\n if(refreshToken){\n const header = {'Authorization': `Bearer ${refreshToken}`};\n return axios.post(`${HOST}/api/auth/refresh`, '', { headers: header })\n .then(({data}) => {\n localStorage.setItem('accessToken', data.access_token);\n localStorage.setItem('refreshToken', data.refresh_token);\n return data.account;\n })\n .catch((err) => {\n return null;\n })\n }\n return null;\n}\n\nexport const logoutOnlineGallery = () => {\n return axios.get('https://baroness-international.com/Login/logout')\n .then((data) => {\n return 'logout success';\n })\n .catch((err) => {\n return null;\n })\n return null;\n}\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { call, put, take, select } from 'redux-saga/effects';\r\n\r\n//Actions\r\nconst SHOW_MESSAGE = 'bmm/message/SHOW_MESSAGE';\r\nconst HIDE_MESSAGE = 'bmm/message/HIDE_MESSAGE';\r\n\r\n//Action Creators\r\nexport const showMessage = createAction(SHOW_MESSAGE);\r\nexport const hideMessage = createAction(HIDE_MESSAGE);\r\n\r\n//initialState\r\nconst initialState = {\r\n isShowing: false,\r\n type: 'error',\r\n content: '',\r\n}\r\n\r\n//Reducers\r\nexport default handleActions({\r\n [SHOW_MESSAGE]: (state, action) => {\r\n return {\r\n isShowing: true,\r\n type: action.payload.type,\r\n content: action.payload.content\r\n }\r\n },\r\n [HIDE_MESSAGE]: (state, action) => {\r\n return initialState\r\n },\r\n},initialState)\r\n","//ファイルタイプ\nexport const UM = 'UM'; //取扱説明書\nexport const PC = 'PC'; //パーツカタログ\nexport const PU = 'PU'; //取扱説明書&パーツカタログ\nexport const SM = 'SM'; //サービスマニュアル\nexport const CA = 'CA'; //製品カタログ\nexport const FR = 'FR'; //標準時間整備表\n","// Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport * as messageModule from './message';\nimport {t} from 'i18next';\n\nimport { searchManualList, downloadFile, exportManualCsv, uploadManualCsv } from './api';\nimport * as fileTypes from '../constants/fileTypes';\n\n// Actions\nconst MENU_SELECTED = 'bmm/manualList/MENU_SELECTED';\nconst RESET_ALL = 'bmm/manualList/RESET_ALL';\nconst RESET_QUERIES = 'bmm/manualList/RESET_QUERIES';\nconst SEARCH_REQUEST = 'bmm/manualList/SEARCH_REQUEST';\nconst SEARCH_SUCCESS = 'bmm/manualLit/SEARCH_SUCCESS';\nconst SEARCH_FAILURE = 'bmm/manulaList/SEARCH_FAILURE';\nconst PAGING_REQUEST = 'bmm/manualList/PAGING_REQUEST';\nconst PAGING_SUCCESS = 'bmm/manualList/PAGING_SUCCESS';\nconst PAGING_FAILURE = 'bmm/manualList/PAGING_FAILURE';\nconst SET_UPLOAD_FILE = 'bmm/manualList/SET_UPLOAD_FILE';\nconst UPLOAD_CSV_REQUEST = 'bmm/manualList/UPLOAD_CSV_REQUEST';\nconst UPLOAD_CSV_SUCCESS = 'bmm/manualList/UPLOAD_CSV_SUCCESS';\nconst UPLOAD_CSV_FAILED = 'bmm/manualList/UPLOAD_CSV_FAILED';\nconst EXPORT_CSV_REQUEST = 'bmm/manualList/EXPORT_CSV_REQUEST';\nconst EXPORT_CSV_SUCCESS = 'bmm/manualList/EXPORT_CSV_SUCCESS';\nconst EXPORT_CSV_FAILED = 'bmm/manualList/EXPORT_CSV_FAILED';\nconst INPUT_CHANGED = 'bmm/manualList/INPUT_CHANGED';\nconst FILE_TYPE_CHANGED = 'bmm/manualList/FILE_TYPE_CHANGED';\nconst PAGE_CHANGED = 'bmm/manualList/PAGE_CHANGED';\nconst PER_PAGE_CHANGED = 'bmm/manualList/PER_PAGE_CHANGED';\nconst SORT_CHANGED = 'bmm/manualList/SORT_CHANGED';\nconst DOWNLOAD_REQUEST = 'bmm/manualList/DOWNLOAD_REQUEST';\nconst DOWNLOAD_SUCCESS = 'bmm/manualList/DOWNLOAD_SUCCESS';\nconst DOWNLOAD_FAILED = 'bmm/manualList/DOWNLOAD_FAILED';\n\n\n// Action Creators\nexport const menuSelected = createAction(MENU_SELECTED);\nexport const resetAll = createAction(RESET_ALL);\nexport const resetQueries = createAction(RESET_QUERIES);\nexport const searchRequest = createAction(SEARCH_REQUEST);\nexport const searchSuccess = createAction(SEARCH_SUCCESS);\nexport const searchFailure = createAction(SEARCH_FAILURE);\nexport const pagingRequest = createAction(PAGING_REQUEST);\nexport const pagingSuccess = createAction(PAGING_SUCCESS);\nexport const pagingFailure = createAction(PAGING_FAILURE);\nexport const setUploadFile = createAction(SET_UPLOAD_FILE);\nexport const uploadCsvRequest = createAction(UPLOAD_CSV_REQUEST);\nexport const uploadCsvSuccess = createAction(UPLOAD_CSV_SUCCESS);\nexport const uploadCsvFailed = createAction(UPLOAD_CSV_FAILED);\nexport const exportCsvRequest = createAction(EXPORT_CSV_REQUEST);\nexport const exportCsvSuccess = createAction(EXPORT_CSV_SUCCESS);\nexport const exportCsvFailed = createAction(EXPORT_CSV_FAILED);\nexport const inputChanged = createAction(INPUT_CHANGED);\nexport const fileTypeChanged = createAction(FILE_TYPE_CHANGED);\nexport const pageChanged = createAction(PAGE_CHANGED);\nexport const perPageChanged = createAction(PER_PAGE_CHANGED);\nexport const sortChanged = createAction(SORT_CHANGED);\nexport const downloadRequest = createAction(DOWNLOAD_REQUEST);\nexport const downloadSuccess = createAction(DOWNLOAD_SUCCESS);\nexport const downloadFailed = createAction(DOWNLOAD_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: [],\n queries: {\n page: 1,\n per_page: 10,\n model_name: '',\n serial: '',\n version: '',\n destination: '',\n language: '',\n file_types: {\n UM: true,\n PC: true,\n PU: true,\n SM: true\n },\n sort: {\n key: '',\n order: ''\n },\n only_latest: false,\n categories: [],\n },\n upload_file: null,\n};\n\n\n// Reducer\nexport default handleActions({\n [MENU_SELECTED]: (state, action) => {\n const type = action.payload.type;\n switch(type){\n case fileTypes.UM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: false,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.PC:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: true,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.SM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: false,\n PU: false,\n SM: true\n }}}\n break;\n default:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: true,\n PU: true,\n SM: true\n }}}\n break;\n }\n },\n [RESET_ALL]: (state, action) => {\n return initialState;\n },\n [RESET_QUERIES]: (state, action) => {\n return {\n ...state,\n queries: initialState.queries\n }\n },\n [SEARCH_REQUEST]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1\n },\n isLoading: true\n }\n },\n [SEARCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [SEARCH_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [PAGING_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [PAGING_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [PAGING_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [SET_UPLOAD_FILE]: (state, action) => {\n return {\n ...state,\n upload_file: action.payload\n }\n },\n [UPLOAD_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [UPLOAD_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [UPLOAD_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [EXPORT_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [EXPORT_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [EXPORT_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [INPUT_CHANGED]: (state, action) => {\n return {\n ...state,\n queries:{\n ...state.queries,\n [action.payload.key]: action.payload.value\n }\n }\n },\n [FILE_TYPE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n file_types:{\n ...state.queries.file_types,\n [action.payload.key]: action.payload.value\n }\n }\n }\n },\n [PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: action.payload,\n }\n }\n },\n [PER_PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1,\n per_page: action.payload,\n }\n }\n },\n [SORT_CHANGED]: (state, action) => {\n let _sort;\n if (state.queries.sort.key !== action.payload) {\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else{\n if(state.queries.sort.order === ''){\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else if(state.queries.sort.order === 'asc'){\n _sort = {\n key: action.payload,\n order: 'desc'\n }\n }\n else if(state.queries.sort.order === 'desc'){\n _sort = {\n key: '',\n order: ''\n }\n }\n }\n return {\n ...state,\n queries: {\n ...state.queries,\n sort: _sort\n }\n }\n },\n [DOWNLOAD_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [DOWNLOAD_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [DOWNLOAD_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n},initialState);\n\n// Selectors\nconst getQueries = state => state.manualList.queries;\nconst getUploadFile = state => state.manualList.upload_file;\nconst getLang = state => {\n return {\n lang: state.auth.language===\"en\" ? \"en-US\" : \"ja-JP\"\n }\n};\n\n// Sagas\nfunction* handleSearchManualList(context) {\n while(true){\n const action = yield take(SEARCH_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchManualList, queries);\n if(payload) {\n yield put(searchSuccess(payload));\n } else {\n yield put(searchFailure('error'));\n }\n }\n}\n\nfunction* handlePagingManualList(context) {\n while(true){\n const action = yield take(PAGING_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchManualList, queries);\n if(payload) {\n yield put(pagingSuccess(payload));\n } else {\n yield put(pagingFailure('error'));\n }\n }\n}\n\nfunction* handleUploadCsv(context) {\n while(true) {\n const action = yield take(UPLOAD_CSV_REQUEST);\n const uploadFile = yield select(getUploadFile);\n const payload = yield call(uploadManualCsv, uploadFile);\n if(!!payload && payload.status == 200) {\n yield put(uploadCsvSuccess(payload));\n yield put(messageModule.showMessage(\n {type: 'success', content: t('upload_countries_csv_success')}\n ));\n } else if (!!payload && payload.status >= 400) {\n yield put(uploadCsvFailed('error'));\n yield put(messageModule.showMessage(\n {type: 'error', content: t('file_format_is_different')}\n ));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: t('upload_countries_csv_failed')}\n ));\n }\n }\n}\n\nfunction* handleExportCsv(context){\n while(true){\n const action = yield take(EXPORT_CSV_REQUEST);\n const lang = yield select(getLang);\n const payload = yield call(exportManualCsv, {\n ...action.payload,\n ...lang\n });\n if(payload) {\n yield put(exportCsvSuccess(payload));\n }else{\n yield put(exportCsvFailed('error'));\n }\n }\n}\n\nfunction* handleMenuSelected(context){\n while(true){\n yield take(MENU_SELECTED);\n const queries = yield select(getQueries);\n yield call(context.history.push, '/manual_list');\n }\n}\n\nfunction* handlePageChanged(context) {\n while(true){\n yield take(PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(pagingRequest(queries));\n }\n}\n\nfunction* handlePerPageChanged(context) {\n while(true){\n yield take(PER_PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction * handleSortChanged(context) {\n while(true){\n yield take(SORT_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction* handleDownloadRequest(context) {\n while(true) {\n const action = yield take(DOWNLOAD_REQUEST);\n const payload = yield call(downloadFile, action.payload);\n if(payload) {\n yield put(downloadSuccess(payload));\n } else {\n yield put(downloadFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleSearchManualList,\n handlePagingManualList,\n handleMenuSelected,\n handlePageChanged,\n handlePerPageChanged,\n handleSortChanged,\n handleUploadCsv,\n handleDownloadRequest,\n handleExportCsv,\n];\n","// Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport * as messageModule from '../message';\nimport {t} from 'i18next';\n\nimport { searchCatalogList, downloadFile, exportCatalogCsv, uploadCatalogCsv } from '../api';\nimport * as fileTypes from '../../constants/fileTypes';\n\n// Actions\nconst MENU_SELECTED = 'bmm/catalogList/MENU_SELECTED';\nconst RESET_ALL = 'bmm/catalogList/RESET_ALL';\nconst RESET_QUERIES = 'bmm/catalogList/RESET_QUERIES';\nconst SEARCH_REQUEST = 'bmm/catalogList/SEARCH_REQUEST';\nconst SEARCH_SUCCESS = 'bmm/catalogList/SEARCH_SUCCESS';\nconst SEARCH_FAILURE = 'bmm/catalogList/SEARCH_FAILURE';\nconst PAGING_REQUEST = 'bmm/catalogList/PAGING_REQUEST';\nconst PAGING_SUCCESS = 'bmm/catalogList/PAGING_SUCCESS';\nconst PAGING_FAILURE = 'bmm/catalogList/PAGING_FAILURE';\nconst SET_UPLOAD_FILE = 'bmm/catalogList/SET_UPLOAD_FILE';\nconst UPLOAD_CSV_REQUEST = 'bmm/catalogList/UPLOAD_CSV_REQUEST';\nconst UPLOAD_CSV_SUCCESS = 'bmm/catalogList/UPLOAD_CSV_SUCCESS';\nconst UPLOAD_CSV_FAILED = 'bmm/catalogList/UPLOAD_CSV_FAILED';\nconst EXPORT_CSV_REQUEST = 'bmm/catalogList/EXPORT_CSV_REQUEST';\nconst EXPORT_CSV_SUCCESS = 'bmm/catalogList/EXPORT_CSV_SUCCESS';\nconst EXPORT_CSV_FAILED = 'bmm/catalogList/EXPORT_CSV_FAILED';\nconst INPUT_CHANGED = 'bmm/catalogList/INPUT_CHANGED';\nconst FILE_TYPE_CHANGED = 'bmm/catalogList/FILE_TYPE_CHANGED';\nconst PAGE_CHANGED = 'bmm/catalogList/PAGE_CHANGED';\nconst PER_PAGE_CHANGED = 'bmm/catalogList/PER_PAGE_CHANGED';\nconst SORT_CHANGED = 'bmm/catalogList/SORT_CHANGED';\nconst DOWNLOAD_REQUEST = 'bmm/catalogList/DOWNLOAD_REQUEST';\nconst DOWNLOAD_SUCCESS = 'bmm/catalogList/DOWNLOAD_SUCCESS';\nconst DOWNLOAD_FAILED = 'bmm/catalogList/DOWNLOAD_FAILED';\n\n\n// Action Creators\nexport const menuSelected = createAction(MENU_SELECTED);\nexport const resetAll = createAction(RESET_ALL);\nexport const resetQueries = createAction(RESET_QUERIES);\nexport const searchRequest = createAction(SEARCH_REQUEST);\nexport const searchSuccess = createAction(SEARCH_SUCCESS);\nexport const searchFailure = createAction(SEARCH_FAILURE);\nexport const pagingRequest = createAction(PAGING_REQUEST);\nexport const pagingSuccess = createAction(PAGING_SUCCESS);\nexport const pagingFailure = createAction(PAGING_FAILURE);\nexport const setUploadFile = createAction(SET_UPLOAD_FILE);\nexport const uploadCsvRequest = createAction(UPLOAD_CSV_REQUEST);\nexport const uploadCsvSuccess = createAction(UPLOAD_CSV_SUCCESS);\nexport const uploadCsvFailed = createAction(UPLOAD_CSV_FAILED);\nexport const exportCsvRequest = createAction(EXPORT_CSV_REQUEST);\nexport const exportCsvSuccess = createAction(EXPORT_CSV_SUCCESS);\nexport const exportCsvFailed = createAction(EXPORT_CSV_FAILED);\nexport const inputChanged = createAction(INPUT_CHANGED);\nexport const fileTypeChanged = createAction(FILE_TYPE_CHANGED);\nexport const pageChanged = createAction(PAGE_CHANGED);\nexport const perPageChanged = createAction(PER_PAGE_CHANGED);\nexport const sortChanged = createAction(SORT_CHANGED);\nexport const downloadRequest = createAction(DOWNLOAD_REQUEST);\nexport const downloadSuccess = createAction(DOWNLOAD_SUCCESS);\nexport const downloadFailed = createAction(DOWNLOAD_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: [],\n queries: {\n page: 1,\n per_page: 10,\n model_name: '',\n serial: '',\n version: '',\n destination: '',\n language: '',\n file_types: {\n CA: true\n },\n sort: {\n key: '',\n order: ''\n },\n only_latest: false,\n categories: [],\n }\n};\n\n\n// Reducer\nexport default handleActions({\n [MENU_SELECTED]: (state, action) => {\n const type = action.payload.type;\n switch(type){\n case fileTypes.UM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: false,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.PC:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: true,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.SM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: false,\n PU: false,\n SM: true\n }}}\n break;\n default:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: true,\n PU: true,\n SM: true\n }}}\n break;\n }\n },\n [RESET_ALL]: (state, action) => {\n return initialState;\n },\n [RESET_QUERIES]: (state, action) => {\n return {\n ...state,\n queries: initialState.queries\n }\n },\n [SEARCH_REQUEST]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1\n },\n isLoading: true\n }\n },\n [SEARCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [SEARCH_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [PAGING_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [PAGING_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [PAGING_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [SET_UPLOAD_FILE]: (state, action) => {\n return {\n ...state,\n upload_file: action.payload\n }\n },\n [UPLOAD_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [UPLOAD_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [UPLOAD_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [EXPORT_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [EXPORT_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [EXPORT_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [INPUT_CHANGED]: (state, action) => {\n return {\n ...state,\n queries:{\n ...state.queries,\n [action.payload.key]: action.payload.value\n }\n }\n },\n [FILE_TYPE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n file_types:{\n ...state.queries.file_types,\n [action.payload.key]: action.payload.value\n }\n }\n }\n },\n [PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: action.payload,\n }\n }\n },\n [PER_PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1,\n per_page: action.payload,\n }\n }\n },\n [SORT_CHANGED]: (state, action) => {\n let _sort;\n if (state.queries.sort.key !== action.payload) {\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else{\n if(state.queries.sort.order === ''){\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else if(state.queries.sort.order === 'asc'){\n _sort = {\n key: action.payload,\n order: 'desc'\n }\n }\n else if(state.queries.sort.order === 'desc'){\n _sort = {\n key: '',\n order: ''\n }\n }\n }\n return {\n ...state,\n queries: {\n ...state.queries,\n sort: _sort\n }\n }\n },\n [DOWNLOAD_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [DOWNLOAD_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [DOWNLOAD_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n},initialState);\n\n// Selectors\nconst getQueries = state => state.catalogList.queries;\nconst getUploadFile = state => state.catalogList.upload_file;\nconst getLang = state => {\n return {\n lang: state.auth.language===\"en\" ? \"en-US\" : \"ja-JP\"\n }\n};\n\n// Sagas\nfunction* handleSearchCatalogList(context) {\n while(true){\n const action = yield take(SEARCH_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchCatalogList, queries);\n if(payload) {\n yield put(searchSuccess(payload));\n } else {\n yield put(searchFailure('error'));\n }\n }\n}\n\nfunction* handlePagingCatalogList(context) {\n while(true){\n const action = yield take(PAGING_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchCatalogList, queries);\n if(payload) {\n yield put(pagingSuccess(payload));\n } else {\n yield put(pagingFailure('error'));\n }\n }\n}\n\nfunction* handleUploadCsv(context) {\n while(true) {\n const action = yield take(UPLOAD_CSV_REQUEST);\n const uploadFile = yield select(getUploadFile);\n const payload = yield call(uploadCatalogCsv, uploadFile);\n if(!!payload && payload.status == 200) {\n yield put(uploadCsvSuccess(payload));\n yield put(messageModule.showMessage(\n {type: 'success', content: t('upload_countries_csv_success')}\n ));\n } else if (!!payload && payload.status >= 400) {\n yield put(uploadCsvFailed('error'));\n yield put(messageModule.showMessage(\n {type: 'error', content: t('file_format_is_different')}\n ));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: t('upload_countries_csv_failed')}\n ));\n }\n }\n}\n\nfunction* handleExportCsv(context){\n while(true){\n const action = yield take(EXPORT_CSV_REQUEST);\n const lang = yield select(getLang);\n const payload = yield call(exportCatalogCsv, {\n ...action.payload,\n ...lang\n });\n if(payload) {\n yield put(exportCsvSuccess(payload));\n }else{\n yield put(exportCsvFailed('error'));\n }\n }\n}\n\nfunction* handleMenuSelected(context){\n while(true){\n yield take(MENU_SELECTED);\n const queries = yield select(getQueries);\n yield call(context.history.push, '/catalog_list');\n }\n}\n\nfunction* handlePageChanged(context) {\n while(true){\n yield take(PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(pagingRequest(queries));\n }\n}\n\nfunction* handlePerPageChanged(context) {\n while(true){\n yield take(PER_PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction * handleSortChanged(context) {\n while(true){\n yield take(SORT_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction* handleDownloadRequest(context) {\n while(true) {\n const action = yield take(DOWNLOAD_REQUEST);\n const payload = yield call(downloadFile, action.payload);\n if(payload) {\n yield put(downloadSuccess(payload));\n } else {\n yield put(downloadFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleSearchCatalogList,\n handlePagingCatalogList,\n handleMenuSelected,\n handlePageChanged,\n handlePerPageChanged,\n handleSortChanged,\n handleUploadCsv,\n handleDownloadRequest,\n handleExportCsv,\n];\n","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport { login, adminLogin, refreshLogin, getAccessToken, getAdminAccessToken } from '../api';\nimport i18next from 'i18next';\n\nimport * as catalogListModule from './catalogList';\nimport * as messageModule from '../message';\n\n//Actions\nconst LOGIN_REQUEST = 'bmm/catalogAuth/LOGIN_REQUEST';\nconst LOGIN_SUCCESS = 'bmm/catalogAuth/LOGIN_SUCCESS';\nconst LOGIN_FAILED = 'bmm/catalogAuth/LOGIN_FAILED';\nconst ADMIN_LOGIN_REQUEST = 'bmm/catalogAuth/ADMIN_LOGIN_REQUEST';\nconst ADMIN_LOGIN_SUCCESS = 'bmm/catalogAuth/ADMIN_LOGIN_SUCCESS';\nconst ADMIN_LOGIN_FAILED = 'bmm/catalogAuth/ADMIN_LOGIN_FAILED';\nconst REFRESH_REQUEST = 'bmm/catalogAuth/REFRESH_REQUEST';\nconst REFRESH_SUCCESS = 'bmm/catalogAuth/REFRESH_SUCCESS';\nconst REFRESH_FAILED = 'bmm/catalogAuth/REFRESH_FAILED';\nconst AUTO_LOGIN_REQUEST = 'bmm/catalogAuth/AUTO_LOGIN_REQUEST';\nconst AUTO_LOGIN_SUCCESS = 'bmm/catalogAuth/AUTO_LOGIN_SUCCESS';\nconst AUTO_LOGIN_FAILED = 'bmm/catalogAuth/AUTO_LOGIN_FAILED';\nconst AUTO_LOGIN_STOPPED = 'bmm/catalogAuth/AUTO_LOGIN_STOPPED';\nconst AUTO_ADMIN_LOGIN_REQUEST = 'bmm/catalogAuth/AUTO_ADMIN_LOGIN_REQUEST';\nconst AUTO_ADMIN_LOGIN_SUCCESS = 'bmm/catalogAuth/AUTO_ADMIN_LOGIN_SUCCESS';\nconst AUTO_ADMIN_LOGIN_FAILED = 'bmm/catalogAuth/AUTO_ADMIN_LOGIN_FAILED';\nconst AUTO_ADMIN_LOGIN_STOPPED = 'bmm/catalogAuth/AUTO_ADMIN_LOGIN_STOPPED';\nconst LOGOUT = 'bmm/catalogAuth/LOGOUT';\nconst CHANGE_LANGUAGE = 'bmm/catalogAuth/CHANGE_LANGUAGE';\nconst FORM_CHANGED = 'bmm/catalogAuth/FORM_CHANGED';\n\n//Action Creators\nexport const loginRequest = createAction(LOGIN_REQUEST);\nexport const loginSuccess = createAction(LOGIN_SUCCESS);\nexport const loginFailed = createAction(LOGIN_FAILED);\nexport const adminLoginRequest = createAction(ADMIN_LOGIN_REQUEST);\nexport const adminLoginSuccess = createAction(ADMIN_LOGIN_SUCCESS);\nexport const adminLoginFailed = createAction(ADMIN_LOGIN_FAILED);\nexport const refreshRequest = createAction(REFRESH_REQUEST);\nexport const refreshSuccess = createAction(REFRESH_SUCCESS);\nexport const refreshFailed = createAction(REFRESH_FAILED);\nexport const autoLoginRequest = createAction(AUTO_LOGIN_REQUEST);\nexport const autoLoginSuccess = createAction(AUTO_LOGIN_SUCCESS);\nexport const autoLoginFailed = createAction(AUTO_LOGIN_FAILED);\nexport const autoLoginStopped = createAction(AUTO_LOGIN_STOPPED);\nexport const autoAdminLoginRequest = createAction(AUTO_ADMIN_LOGIN_REQUEST);\nexport const autoAdminLoginSuccess = createAction(AUTO_ADMIN_LOGIN_SUCCESS);\nexport const autoAdminLoginFailed = createAction(AUTO_ADMIN_LOGIN_FAILED);\nexport const autoAdminLoginStopped = createAction(AUTO_ADMIN_LOGIN_STOPPED);\nexport const logout = createAction(LOGOUT);\nexport const changeLanguage = createAction(CHANGE_LANGUAGE);\nexport const formChanged = createAction(FORM_CHANGED);\n\n//initialState\nconst initialState = {\n isLoading: false,\n isLoggedIn: false, //ログイン中かどうか\n account: {\n user_name: '',\n country_id: '', //国ID\n is_superuser: false, //管理者かどうか\n },\n language: '', //状態変化がないと画面更新が走らない\n form: {\n username: '',\n password: '',\n }\n}\n\nexport default handleActions({\n [LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [REFRESH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [REFRESH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [REFRESH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [AUTO_ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_ADMIN_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [LOGOUT]: (state, action) => {\n return initialState;\n },\n [CHANGE_LANGUAGE]: (state, action) => {\n i18next.changeLanguage(action.payload);\n return {\n ...state,\n language: action.payload,\n }\n },\n [FORM_CHANGED]: (state, action) => {\n return {\n ...state,\n form: {\n ...state.form,\n [action.payload.key]: action.payload.value,\n }\n }\n },\n},initialState);\n\n//Selectors\n\n//ログインフォームデータ取得\nconst getLoginForm = state => state.catalogAuth.form;\nconst getIsLoggedIn = state => state.catalogAuth.isLoggedIn;\nconst getIsSuperuser = state => state.catalogAuth.account.is_superuser;\nconst getQueries = state => state.catalogList.queries;\n\n//Sagas\nfunction *handleLoginRequest(context) {\n while(true){\n yield take(LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(login, loginForm);\n if(payload) {\n yield put(loginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(loginFailed());\n }\n }\n}\n\nfunction *handleLoginSuccess(context) {\n while(true){\n const action = yield take(LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'catalog');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/catalog_list');\n }\n }\n}\n\nfunction *handleAdminLoginRequest(context) {\n while(true){\n yield take(ADMIN_LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(adminLogin, loginForm);\n if(payload) {\n yield put(adminLoginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(adminLoginFailed());\n }\n }\n}\n\nfunction *handleAdminLoginSuccess(context) {\n while(true){\n const action = yield take(ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'catalog');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/catalog_list');\n }\n }\n}\n\nfunction *handleRefreshRequest(context) {\n while(true){\n yield take(REFRESH_REQUEST);\n const payload = yield call(refreshLogin);\n if(payload) {\n yield put(refreshSuccess(payload));\n } else {\n yield put(loginFailed());\n yield call(context.history.push, '/catalog_login');\n }\n }\n}\n\nfunction *handleRefreshSuccess(context) {\n while(true){\n const action = yield take(REFRESH_SUCCESS);\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n }\n}\n\nfunction *handleAutoLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoLoginStopped());\n }\n else {\n //yield put(catalogListModule.menuSelected({type: action.payload}));\n const payload = yield call(getAccessToken);\n if(payload) {\n yield put(autoLoginSuccess(payload));\n } else {\n yield put(autoLoginFailed());\n yield call(context.history.push, '/catalog_login');\n }\n }\n }\n}\n\nfunction *handleAutoLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'catalog');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(catalogListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/catalog_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\nfunction *handleAutoAdminLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoAdminLoginStopped());\n }\n else {\n const payload = yield call(getAdminAccessToken, action.payload);\n if(payload) {\n yield put(autoAdminLoginSuccess(payload));\n } else {\n yield put(autoAdminLoginFailed());\n yield call(context.history.push, '/catalog_login/admin');\n }\n }\n }\n}\n\nfunction *handleAutoAdminLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'catalog');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(catalogListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/catalog_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\n\nfunction *handleLogout(context) {\n while(true) {\n const action = yield take(LOGOUT);\n const isAdmin = action.payload;\n //ローカルストレージのToken削除\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n //オンラインギャラリーのCookie削除\n document.cookie = \"CAKEPHP=; path=/; max-age=0\";\n //yield put(changeLanguage(initialState.language));\n\n if(isAdmin) {\n yield call(context.history.push, '/catalog_login/admin');\n }\n else {\n yield call(context.history.push, '/catalog_login');\n }\n }\n}\n\n// Sagas\nexport const sagas = [\n handleLoginRequest,\n handleLoginSuccess,\n handleAdminLoginRequest,\n handleAdminLoginSuccess,\n handleRefreshRequest,\n handleRefreshSuccess,\n handleAutoLoginRequest,\n handleAutoLoginSuccess,\n handleAutoAdminLoginRequest,\n handleAutoAdminLoginSuccess,\n handleLogout,\n]\n","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport { login, adminLogin, refreshLogin, getAccessToken, getAdminAccessToken } from './api';\nimport i18next from 'i18next';\n\nimport * as manualListModule from './manualList';\nimport * as messageModule from './message';\nimport * as catalogAuthModule from './catalog/catalogAuth';\n\n//Actions\nconst LOGIN_REQUEST = 'bmm/auth/LOGIN_REQUEST';\nconst LOGIN_SUCCESS = 'bmm/auth/LOGIN_SUCCESS';\nconst LOGIN_FAILED = 'bmm/auth/LOGIN_FAILED';\nconst ADMIN_LOGIN_REQUEST = 'bmm/auth/ADMIN_LOGIN_REQUEST';\nconst ADMIN_LOGIN_SUCCESS = 'bmm/auth/ADMIN_LOGIN_SUCCESS';\nconst ADMIN_LOGIN_FAILED = 'bmm/auth/ADMIN_LOGIN_FAILED';\nconst REFRESH_REQUEST = 'bmm/auth/REFRESH_REQUEST';\nconst REFRESH_SUCCESS = 'bmm/auth/REFRESH_SUCCESS';\nconst REFRESH_FAILED = 'bmm/auth/REFRESH_FAILED';\nconst AUTO_LOGIN_REQUEST = 'bmm/auth/AUTO_LOGIN_REQUEST';\nconst AUTO_LOGIN_SUCCESS = 'bmm/auth/AUTO_LOGIN_SUCCESS';\nconst AUTO_LOGIN_FAILED = 'bmm/auth/AUTO_LOGIN_FAILED';\nconst AUTO_LOGIN_STOPPED = 'bmm/auth/AUTO_LOGIN_STOPPED';\nconst AUTO_ADMIN_LOGIN_REQUEST = 'bmm/auth/AUTO_ADMIN_LOGIN_REQUEST';\nconst AUTO_ADMIN_LOGIN_SUCCESS = 'bmm/auth/AUTO_ADMIN_LOGIN_SUCCESS';\nconst AUTO_ADMIN_LOGIN_FAILED = 'bmm/auth/AUTO_ADMIN_LOGIN_FAILED';\nconst AUTO_ADMIN_LOGIN_STOPPED = 'bmm/auth/AUTO_ADMIN_LOGIN_STOPPED';\nconst LOGOUT = 'bmm/auth/LOGOUT';\nconst CHANGE_LANGUAGE = 'bmm/auth/CHANGE_LANGUAGE';\nconst FORM_CHANGED = 'bmm/auth/FORM_CHANGED';\n\n//Action Creators\nexport const loginRequest = createAction(LOGIN_REQUEST);\nexport const loginSuccess = createAction(LOGIN_SUCCESS);\nexport const loginFailed = createAction(LOGIN_FAILED);\nexport const adminLoginRequest = createAction(ADMIN_LOGIN_REQUEST);\nexport const adminLoginSuccess = createAction(ADMIN_LOGIN_SUCCESS);\nexport const adminLoginFailed = createAction(ADMIN_LOGIN_FAILED);\nexport const refreshRequest = createAction(REFRESH_REQUEST);\nexport const refreshSuccess = createAction(REFRESH_SUCCESS);\nexport const refreshFailed = createAction(REFRESH_FAILED);\nexport const autoLoginRequest = createAction(AUTO_LOGIN_REQUEST);\nexport const autoLoginSuccess = createAction(AUTO_LOGIN_SUCCESS);\nexport const autoLoginFailed = createAction(AUTO_LOGIN_FAILED);\nexport const autoLoginStopped = createAction(AUTO_LOGIN_STOPPED);\nexport const autoAdminLoginRequest = createAction(AUTO_ADMIN_LOGIN_REQUEST);\nexport const autoAdminLoginSuccess = createAction(AUTO_ADMIN_LOGIN_SUCCESS);\nexport const autoAdminLoginFailed = createAction(AUTO_ADMIN_LOGIN_FAILED);\nexport const autoAdminLoginStopped = createAction(AUTO_ADMIN_LOGIN_STOPPED);\nexport const logout = createAction(LOGOUT);\nexport const changeLanguage = createAction(CHANGE_LANGUAGE);\nexport const formChanged = createAction(FORM_CHANGED);\n\n//initialState\nconst initialState = {\n isLoading: false,\n isLoggedIn: false, //ログイン中かどうか\n account: {\n user_name: '',\n country_id: '', //国ID\n is_superuser: false, //管理者かどうか\n },\n language: '', //状態変化がないと画面更新が走らない\n form: {\n username: '',\n password: '',\n }\n}\n\nexport default handleActions({\n [LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [REFRESH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [REFRESH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [REFRESH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [AUTO_ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_ADMIN_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [LOGOUT]: (state, action) => {\n return initialState;\n },\n [CHANGE_LANGUAGE]: (state, action) => {\n i18next.changeLanguage(action.payload);\n return {\n ...state,\n language: action.payload,\n }\n },\n [FORM_CHANGED]: (state, action) => {\n return {\n ...state,\n form: {\n ...state.form,\n [action.payload.key]: action.payload.value,\n }\n }\n },\n},initialState);\n\n//Selectors\n\n//ログインフォームデータ取得\nconst getLoginForm = state => state.auth.form;\nconst getIsLoggedIn = state => state.auth.isLoggedIn;\nconst getIsSuperuser = state => state.auth.account.is_superuser;\nconst getQueries = state => state.manualList.queries;\n\n//Sagas\nfunction *handleLoginRequest(context) {\n while(true){\n yield take(LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(login, loginForm);\n if(payload) {\n yield put(loginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(loginFailed());\n }\n }\n}\n\nfunction *handleLoginSuccess(context) {\n while(true){\n const action = yield take(LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'manual');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/manual_list');\n }\n }\n}\n\nfunction *handleAdminLoginRequest(context) {\n while(true){\n yield take(ADMIN_LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(adminLogin, loginForm);\n if(payload) {\n yield put(adminLoginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(adminLoginFailed());\n }\n }\n}\n\nfunction *handleAdminLoginSuccess(context) {\n while(true){\n const action = yield take(ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'manual');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/manual_list');\n }\n }\n}\n\nfunction *handleRefreshRequest(context) {\n while(true){\n yield take(REFRESH_REQUEST);\n const payload = yield call(refreshLogin);\n if(payload) {\n yield put(refreshSuccess(payload));\n } else {\n yield put(loginFailed());\n yield call(context.history.push, '/login');\n }\n }\n}\n\nfunction *handleRefreshSuccess(context) {\n while(true){\n const action = yield take(REFRESH_SUCCESS);\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n }\n}\n\nfunction *handleAutoLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoLoginStopped());\n }\n else {\n yield put(manualListModule.menuSelected({type: action.payload}));\n const payload = yield call(getAccessToken);\n if(payload) {\n yield put(autoLoginSuccess(payload));\n } else {\n yield put(autoLoginFailed());\n yield call(context.history.push, '/login');\n }\n }\n }\n}\n\nfunction *handleAutoLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'manual');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(manualListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/manual_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\nfunction *handleAutoAdminLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoAdminLoginStopped());\n }\n else {\n const payload = yield call(getAdminAccessToken, action.payload);\n if(payload) {\n yield put(autoAdminLoginSuccess(payload));\n } else {\n yield put(autoAdminLoginFailed());\n yield call(context.history.push, '/login/admin');\n }\n }\n }\n}\n\nfunction *handleAutoAdminLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'manual');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(manualListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/manual_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\n\nfunction *handleLogout(context) {\n while(true) {\n const action = yield take(LOGOUT);\n const {isSuperuser} = action.payload;\n const loginType = localStorage.getItem('loginType');\n\n //ローカルストレージのToken削除\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n //オンラインギャラリーのCookie削除\n document.cookie = \"CAKEPHP=; path=/; max-age=0\";\n //yield put(changeLanguage(initialState.language));\n\n if(loginType=='catalog') {\n const isAdmin = localStorage.getItem('isAdmin')==='true' ? true : false;\n yield put(catalogAuthModule.logout(isAdmin));\n }\n else{\n if(isSuperuser) {\n yield call(context.history.push, '/login/admin');\n }\n else {\n yield call(context.history.push, '/login');\n }\n }\n }\n}\n\n// Sagas\nexport const sagas = [\n handleLoginRequest,\n handleLoginSuccess,\n handleAdminLoginRequest,\n handleAdminLoginSuccess,\n handleRefreshRequest,\n handleRefreshSuccess,\n handleAutoLoginRequest,\n handleAutoLoginSuccess,\n handleAutoAdminLoginRequest,\n handleAutoAdminLoginSuccess,\n handleLogout,\n]\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { call, put, take } from 'redux-saga/effects';\r\n\r\nimport { fetchCountries } from './api';\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/countries/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/countries/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/countries/FETCH_FAILED';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\n\r\n// Initial State\r\nconst initialState = {\r\n isLoading: false,\r\n data: null,\r\n};\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n data: action.payload,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n data: []\r\n }\r\n }\r\n},initialState);\r\n\r\n//Sagas\r\nfunction* handleFetchCountries(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchCountries, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'));\r\n }\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handleFetchCountries,\r\n];\r\n","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take } from 'redux-saga/effects';\n\nimport { fetchCategories } from './api';\n\n// Actions\nconst FETCH_REQUEST = 'bmm/categories/FETCH_REQUEST';\nconst FETCH_SUCCESS = 'bmm/categories/FETCH_SUCCESS';\nconst FETCH_FAILED = 'bmm/categories/FETCH_FAILED';\n\n// Action Creators\nexport const fetchRequest = createAction(FETCH_REQUEST);\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\nexport const fetchFailed = createAction(FETCH_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: null,\n};\n\n// Reducer\nexport default handleActions({\n [FETCH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [FETCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [FETCH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n }\n},initialState);\n\n//Sagas\nfunction* handleFetchCategories(context) {\n while(true){\n yield take(FETCH_REQUEST);\n const payload = yield call(fetchCategories);\n if(payload) {\n yield put(fetchSuccess(payload));\n } else {\n yield put(fetchFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleFetchCategories,\n];\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { call, put, take } from 'redux-saga/effects';\r\n\r\nimport { fetchModels } from './api';\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/models/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/models/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/models/FETCH_FAILED';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\n\r\n// Initial State\r\nconst initialState = {\r\n isLoading: false,\r\n data: null,\r\n};\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n data: action.payload,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n data: []\r\n }\r\n }\r\n},initialState);\r\n\r\n//Sagas\r\nfunction* handleFetchModels(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchModels, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'));\r\n }\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handleFetchModels,\r\n];\r\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { call, put, take, select } from 'redux-saga/effects';\r\n\r\n//Actions\r\nconst SHOW_CONFIRM = 'bmm/confirm/SHOW_CONFIRM';\r\nconst HIDE_CONFIRM = 'bmm/confirm/HIDE_CONFIRM';\r\n\r\n\r\n//Action Creators\r\nexport const showConfirm = createAction(SHOW_CONFIRM);\r\nexport const hideConfirm = createAction(HIDE_CONFIRM);\r\n\r\n//initial State\r\nconst initialState = {\r\n isShowing: false,\r\n title: '',\r\n content: '',\r\n actions: {\r\n ok: null,\r\n cancel: null,\r\n }\r\n}\r\n\r\n//Reducers\r\nexport default handleActions({\r\n [SHOW_CONFIRM]: (state, action) => {\r\n return {\r\n isShowing: true,\r\n title: action.payload.title,\r\n content: action.payload.content,\r\n actions: action.payload.actions,\r\n }\r\n },\r\n [HIDE_CONFIRM]: (state, action) => {\r\n return {\r\n ...state,\r\n isShowing: false,\r\n }\r\n }\r\n}, initialState)\r\n","//フォームタイプ\r\nexport const NEW = 0; \r\nexport const EDIT = 1;\r\nexport const UPGRADE = 2;\r\n","export default {\r\n UM: {\r\n title_ja: \"取扱説明書\",\r\n title_en: \"Owner's Operating Manual\",\r\n },\r\n PC: {\r\n title_ja: \"パーツカタログ\",\r\n title_en: \"Parts Catalog\",\r\n },\r\n PU: {\r\n title_ja: \"取扱説明書&パーツカタログ\",\r\n title_en: \"Owner's Operating Manual & Parts Catalog\",\r\n },\r\n SM: {\r\n title_ja: \"サービスマニュアル\",\r\n title_en: \"Service Manual\",\r\n },\r\n Evapo: {\r\n title_ja: \"エバポ保証声明書\",\r\n title_en: \"Evaporative Emission Control Warranty Statement\",\r\n },\r\n EU_Doc: {\r\n title_ja: \"EU適合宣言\",\r\n title_en: \"EU Declaration of Conformity\",\r\n },\r\n UK_Doc: {\r\n title_ja: \"UK適合宣言\",\r\n title_en: \"UK Declaration of Conformity\",\r\n },\r\n US_Regs: {\r\n title_ja: \"US規制文書\",\r\n title_en: \"US Regulations\",\r\n },\r\n FR: {\r\n title_ja: \"標準時間整備表\",\r\n title_en: \"Standard Maintenance Time Catalog\",\r\n }\r\n}\r\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { channel } from 'redux-saga';\r\nimport { call, put, take, select } from 'redux-saga/effects';\r\nimport {t} from 'i18next';\r\n\r\nimport * as countriesAction from '../countries';\r\nimport * as categoriesAction from '../categories';\r\nimport * as modelsAction from '../models';\r\nimport * as messageModule from '../message';\r\nimport * as confirmModule from '../confirm';\r\n\r\nimport { checkFile, fetchCatalog, postNewCatalog, putCatalog, deleteCatalog } from '../api';\r\nimport * as formTypes from '../../constants/formTypes';\r\nimport * as fileTypes from '../../constants/fileTypes';\r\n\r\nimport fileTitle from '../../constants/fileTitle';\r\n\r\n// Initial State\r\nconst initialState = {\r\n activeStep: 0,\r\n formType: null,\r\n hasFormOpened: false,\r\n isLoading: false,\r\n isUploading: false,\r\n isDeleting: false,\r\n file: null,\r\n zipFile: null,\r\n upgradeTargetId: null, //アップグレード対象ID\r\n isSerialEditable: false,\r\n catalog: {\r\n id: null, //マニュアルID\r\n file_name: '', //ファイル名\r\n file_type: '', //ファイルタイプ\r\n zip_file_name: '', //zipファイル名\r\n version: '', //バージョン\r\n title_ja: '', //日本語タイトル\r\n title_en: '', //英語タイトル\r\n destination: '', //仕向\r\n language: '', //言語\r\n binding: '', //綴じ\r\n form_size: '', //用紙サイズ\r\n page_num: null, //ページ数\r\n overview_ja: '', //日本語概要\r\n overview_en: '', //英語概要\r\n evapor: '', //エバポ保証声明書\r\n eu_declaration: '', //EU適合宣言\r\n display: true, //表示させるかどうか\r\n },\r\n new_serials:[], //新規機番データ\r\n serials:[], //過去機番データ\r\n models: [], //選択中機種\r\n countries:[], //国権限\r\n categories:[], //機種カテゴリ\r\n editable_max_version: null, //編集時の最大バージョン\r\n}\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/catalogForm/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/catalogForm/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/catalogForm/FETCH_FAILED';\r\nconst UPLOAD_REQUEST = 'bmm/catalogForm/UPLOAD_REQUEST';\r\nconst UPLOAD_SUCCESS = 'bmm/catalogForm/UPLOAD_SUCCESS';\r\nconst UPLOAD_FAILED = 'bmm/catalogForm/UPLOAD_FAILED';\r\nconst POST_NEW_REQUEST = 'bmm/catalogForm/POST_NEW_REQUEST';\r\nconst POST_NEW_SUCCESS = 'bmm/catalogForm/POST_NEW_SUCCESS';\r\nconst POST_NEW_FAILED = 'bmm/catalogForm/POST_NEW_FAILED';\r\nconst POST_UPGRADE_REQUEST = 'bmm/catalogForm/POST_UPGRADE_REQUEST';\r\nconst POST_UPGRADE_SUCCESS = 'bmm/catalogForm/POST_UPGRADE_SUCCESS';\r\nconst POST_UPGRADE_FAILED = 'bmm/catalogForm/POST_UPGRADE_FAILED';\r\nconst PUT_REQUEST = 'bmm/catalogForm/PUT_CATALOG';\r\nconst PUT_SUCCESS = 'bmm/catalogForm/PUT_SUCCESS';\r\nconst PUT_FAILED = 'bmm/catalogForm/PUT_FAILED';\r\nconst DELETE_REQUEST = 'bmm/catalogForm/DELETE_REQUEST';\r\nconst DELETE_SUCCESS = 'bmm/catalogForm/DELETE_SUCCESS';\r\nconst DELETE_FAILED = 'bmm/catalogForm/DELETE_FAILED';\r\nconst OPEN_NEW = 'bmm/catalogForm/OPEN_NEW';\r\nconst OPEN_EDIT = 'bmm/catalogForm/OPEN_EDIT';\r\nconst OPEN_UPGRADE = 'bmm/catalogForm/OPEN_UPGRADE';\r\nconst INPUT_CHANGED = 'bmm/catalogForm/INPUT_CHANGED';\r\nconst RESET_FORM = 'bmm/catalogForm/RESET_FORM';\r\nconst STEP_NEXT_REQUEST = 'bmm/catalogForm/STEP_NEXT_REQUEST';\r\nconst STEP_NEXT = 'bmm/catalogForm/STEP_NEXT';\r\nconst STEP_BACK = 'bmm/catalogForm/STEP_BACK';\r\nconst STEP_RESET = 'bmm/catalogForm/STEP_RESET';\r\nconst BACK_TO_LIST = 'bmm/catalogForm/BACK_TO_LIST';\r\nconst FILE_SELECTED = 'bmm/catalogForm/FILE_SELECTED';\r\nconst FILE_SELECTED_SUCCESS = 'bmm/catalogForm/FILE_SELECTED_SUCCESS';\r\nconst FILE_SELECTED_FAILED = 'bmm/catalogForm/FILE_SELECTED_FAILED';\r\nconst CHANGE_LOG_FILE_SELECTED = 'bmm/catalogForm/CHANGE_LOG_FILE_SELECTED';\r\nconst CHANGE_LOG_FILE_SUCCESS = 'bmm/catalogForm/CHANGE_LOG_FILE_SUCCESS';\r\nconst CHANGE_LOG_FILE_FAILED = 'bmm/catalogForm/CHANGE_LOG_FILE_FAILED';\r\nconst SERIAL_CHANGED = 'bmm/catalogForm/SERIAL_CHANGED';\r\nconst PAST_SERIAL_CHANGED = 'bmm/catalogForm/PAST_SERIAL_CHANGED';\r\nconst CATEGORIES_SELECTED = 'bmm/catalogForm/CATEGORIES_SELECTED';\r\nconst MODELS_SELECTED = 'bmm/catalogForm/MODELS_SELECTED';\r\nconst COUNTRIES_SELECTED = 'bmm/catalogForm/COUNTRIES_SELECTED';\r\nconst RESET_CATALOG = 'bmm/catalogForm/RESET_CATALOG';\r\nconst PREPARE_UPGRADE = 'bmm/catalogForm/PREPARE_UPGRADE';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\nexport const uploadRequest = createAction(UPLOAD_REQUEST);\r\nexport const uploadSuccess = createAction(UPLOAD_SUCCESS);\r\nexport const uploadFailed = createAction(UPLOAD_FAILED);\r\nexport const postNewRequest = createAction(POST_NEW_REQUEST);\r\nexport const postNewSuccess = createAction(POST_NEW_SUCCESS);\r\nexport const postNewFailed = createAction(POST_NEW_FAILED);\r\nexport const postUpgradeRequest = createAction(POST_UPGRADE_REQUEST);\r\nexport const postUpgradeSuccess = createAction(POST_UPGRADE_SUCCESS);\r\nexport const postUpgradeFailed = createAction(POST_UPGRADE_FAILED);\r\nexport const putRequest = createAction(PUT_REQUEST);\r\nexport const putSuccess = createAction(PUT_SUCCESS);\r\nexport const putFailed = createAction(PUT_FAILED);\r\nexport const deleteRequest = createAction(DELETE_REQUEST);\r\nexport const deleteSuccess = createAction(DELETE_SUCCESS);\r\nexport const deleteFailed = createAction(DELETE_FAILED);\r\nexport const inputChanged = createAction(INPUT_CHANGED);\r\nexport const resetForm = createAction(RESET_FORM);\r\nexport const openNew = createAction(OPEN_NEW);\r\nexport const openEdit = createAction(OPEN_EDIT);\r\nexport const openUpgrade = createAction(OPEN_UPGRADE);\r\nexport const stepNextRequest = createAction(STEP_NEXT_REQUEST);\r\nexport const stepNext = createAction(STEP_NEXT);\r\nexport const stepBack = createAction(STEP_BACK);\r\nexport const stepReset = createAction(STEP_RESET);\r\nexport const backToList = createAction(BACK_TO_LIST);\r\nexport const fileSelected = createAction(FILE_SELECTED);\r\nexport const fileSelectedSuccess = createAction(FILE_SELECTED_SUCCESS);\r\nexport const fileSelectedFailed = createAction(FILE_SELECTED_FAILED);\r\nexport const changeLogFileSelected = createAction(CHANGE_LOG_FILE_SELECTED);\r\nexport const changeLogFileSuccess = createAction(CHANGE_LOG_FILE_SUCCESS);\r\nexport const changeLogFileFailed = createAction(CHANGE_LOG_FILE_FAILED);\r\nexport const serialChanged = createAction(SERIAL_CHANGED);\r\nexport const pastSerialChanged = createAction(PAST_SERIAL_CHANGED);\r\nexport const categoriesSelected = createAction(CATEGORIES_SELECTED);\r\nexport const modelsSelected = createAction(MODELS_SELECTED);\r\nexport const countriesSelected = createAction(COUNTRIES_SELECTED);\r\nexport const resetCatalog = createAction(RESET_CATALOG);\r\nexport const prepareUpgrade = createAction(PREPARE_UPGRADE);\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n catalog: action.payload.catalog,\r\n new_serials: [],\r\n serials: action.payload.serials,\r\n models: action.payload.models,\r\n countries: action.payload.countries,\r\n categories: action.payload.categories,\r\n isSerialEditable: false, //for edit\r\n editable_max_version: action.payload.editable_max_version,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true\r\n }\r\n },\r\n [UPLOAD_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_NEW_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_UPGRADE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [PUT_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n }\r\n },\r\n [DELETE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [OPEN_NEW]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.NEW,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_EDIT]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.EDIT,\r\n isSerialEditable: false,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_UPGRADE]: (state, action) => {\r\n return {\r\n ...initialState,\r\n upgradeTargetId: action.payload,\r\n formType: formTypes.UPGRADE,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [RESET_FORM]: (state, action) => {\r\n return initialState\r\n },\r\n [STEP_NEXT]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep + 1\r\n }\r\n },\r\n [STEP_BACK]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep - 1\r\n }\r\n },\r\n [STEP_RESET]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: 0\r\n }\r\n },\r\n [INPUT_CHANGED]: (state, action) => {\r\n return {\r\n ...state,\r\n catalog: {\r\n ...state.catalog,\r\n [action.payload.key]: action.payload.value,\r\n }\r\n }\r\n },\r\n [SERIAL_CHANGED]: (state, action) => {\r\n const { modelId, key, value } = action.payload;\r\n const maxVersion = Math.max(...state.serials.map(m=>getRelativeVer(m.version)));\r\n return {\r\n ...state,\r\n new_serials: state.new_serials.map(data => {\r\n if(data.model_id === modelId){\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data;\r\n }),\r\n serials: state.serials.map(data => {\r\n if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial != value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: value-1,\r\n }\r\n }else if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial == value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: '99999'\r\n }\r\n }\r\n return data;\r\n }),\r\n }\r\n },\r\n [PAST_SERIAL_CHANGED]: (state, action) => {\r\n const { catalogId, modelId, key, value } = action.payload;\r\n return {\r\n ...state,\r\n serials: state.serials.map(data => {\r\n if(data.catalog_id === catalogId && data.model_id === modelId) {\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data\r\n }),\r\n }\r\n },\r\n [FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [FILE_SELECTED_SUCCESS]: (state, action) => {\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n const fileType = fileName.substring(8,10).replace(/-/g,'');\r\n\r\n const { categories } = state;\r\n var category = '';\r\n categories.forEach( x => {\r\n if(modelName.startsWith(x.category_code)){\r\n category=x.id;\r\n }\r\n })\r\n if(fileType!==fileTypes.CA) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n catalog: {\r\n ...state.catalog,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n }\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: file,\r\n catalog: {\r\n ...state.catalog,\r\n file_name: fileName,\r\n file_type: fileType,\r\n }\r\n }\r\n },\r\n [FILE_SELECTED_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n catalog: {\r\n ...state.catalog,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SUCCESS]: (state, action) => {\r\n const zipFile = action.payload;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zipFile: zipFile,\r\n catalog: {\r\n ...state.catalog,\r\n zip_file_name: zipFile.name,\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zipFile: null,\r\n catalog: {\r\n ...state.catalog,\r\n zip_file_name: '',\r\n }\r\n }\r\n },\r\n [CATEGORIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n categories: action.payload,\r\n }\r\n },\r\n [MODELS_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n models: action.payload\r\n }\r\n },\r\n [COUNTRIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n countries: action.payload\r\n }\r\n },\r\n [RESET_CATALOG]: (state, action) => {\r\n return {\r\n ...state,\r\n catalog: initialState.catalog,\r\n }\r\n },\r\n [PREPARE_UPGRADE]: (state, action) => {\r\n return {\r\n ...state,\r\n catalog: {\r\n ...state.catalog,\r\n file_name: '',\r\n change_log_file_name: '',\r\n file_type: null,\r\n title_ja: '',\r\n title_en: '',\r\n version: null,\r\n }\r\n }\r\n },\r\n},initialState);\r\n\r\n\r\n// Selectors\r\n//全カテゴリとモデルの取得\r\nconst getCategories = state => state.categories.data;\r\nconst getModels = state => state.models.data;\r\n\r\n//選択中カテゴリとモデルの取得\r\nconst getSelectedCategories = state => state.catalogForm.categories;\r\nconst getSelectedModels = state => state.catalogForm.models;\r\n\r\n//マニュアルフォームデータ取得\r\nconst getCatalogForm = state => state.catalogForm;\r\n\r\n//新規POST用データの取得\r\nconst getPostNewData = state => {\r\n return {\r\n catalog: state.catalogForm.catalog,\r\n categories: state.catalogForm.categories.map(item => { return { code: item}}),\r\n countries: state.catalogForm.countries.map(item => {return {code: item}}),\r\n models: state.catalogForm.models,\r\n }\r\n};\r\n//アップグレード用データの取得\r\nconst getPostUpgradeData = state => {\r\n return {\r\n catalog: state.catalogForm.catalog,\r\n categories: state.catalogForm.categories.map(item => { return { code: item}}),\r\n countries: state.catalogForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.catalogForm.new_serials,\r\n serials: state.catalogForm.serials,\r\n }\r\n}\r\n//更新用データの取得\r\nconst getPutData = state => {\r\n return {\r\n catalog: state.catalogForm.catalog,\r\n categories: state.catalogForm.categories.map(item => {return {code: item}}),\r\n countries: state.catalogForm.countries.map(item => {return {code: item}}),\r\n models: state.catalogForm.models,\r\n }\r\n}\r\n//マニュアルデータ取得\r\nconst getCatalog = state => state.catalogForm.catalog;\r\n//ファイルデータ取得\r\nconst getFile = state => state.catalogForm.file;\r\n//改訂履歴ファイルデータ取得\r\nconst getZipFile = state => state.catalogForm.zipFile;\r\n//フォームタイプ取得\r\nconst getFormType = state => state.catalogForm.formType;\r\n//アップグレード対象ID取得\r\nconst getUpgradeTargetId = state => state.catalogForm.upgradeTargetId;\r\n//編集可能フラグの取得\r\nconst getIsSerialEditable = state => state.isSerialEditable;\r\n\r\n// Sagas\r\n\r\nfunction* handlePutSuccess(context) {\r\n while(true){\r\n yield take(PUT_SUCCESS);\r\n yield call(context.history.push, 'catalog_list');\r\n }\r\n}\r\n\r\nfunction* handlePostNewSuccess(context) {\r\n while(true){\r\n yield take(POST_NEW_SUCCESS);\r\n yield call(context.history.push, 'catalog_list');\r\n }\r\n}\r\nfunction* handlePostUpgradeSuccess(context) {\r\n while(true){\r\n yield take(POST_UPGRADE_SUCCESS);\r\n yield call(context.history.push, 'catalog_list');\r\n }\r\n}\r\n\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedFile(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const catalog = yield select(getCatalog);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === catalog.file_name) {\r\n //バリデーションを行わない\r\n yield put(fileSelectedSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(fileSelectedSuccess(file));\r\n }\r\n else {\r\n yield put(fileSelectedFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedFileFailed(context) {\r\n while(true){\r\n yield take(FILE_SELECTED_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n//ファイル選択成功アクションを待ち受ける\r\nfunction* handleSelectedFileSuccess(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED_SUCCESS);\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n\r\n const formType = yield select(getFormType);\r\n const catalog = yield select(getCatalog);\r\n //マニュアルが編集時かつ同一ファイル名の場合はカテゴリ変更しない\r\n if(formType === formTypes.EDIT \r\n && catalog.file_name == fileName){\r\n return;\r\n }\r\n\r\n var category = '';\r\n const categories = yield select(getCategories) || [];\r\n categories.some( x => {\r\n if(modelName.startsWith(x.category_short_name)){\r\n category=x.id; //既存DBの構造上idではなくカテゴリ名を渡す\r\n return true;\r\n }\r\n });\r\n if (category) {\r\n yield put(categoriesSelected([category]))\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedZipFile(context) {\r\n while(true){\r\n const action = yield take(CHANGE_LOG_FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const catalog = yield select(getCatalog);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === catalog.zip_file_name) {\r\n //バリデーションを行わない\r\n yield put(changeLogFileSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(changeLogFileSuccess(file));\r\n }\r\n else {\r\n yield put(changeLogFileFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedZipFileFailed(context) {\r\n while(true){\r\n yield take(CHANGE_LOG_FILE_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n\r\n//カタログデータ取得アクションを待ち受ける\r\nfunction* handleFetchCatalog(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchCatalog, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'))\r\n }\r\n }\r\n}\r\n\r\n//カタログデータ取得成功を待ち受ける\r\nfunction* handleFetchSuccess(context) {\r\n while(true) {\r\n const action = yield take(FETCH_SUCCESS);\r\n const formType = yield select(getFormType);\r\n\r\n if(formType===formTypes.UPGRADE){\r\n yield put(prepareUpgrade());\r\n }\r\n const categories = yield select(getSelectedCategories);\r\n const models = yield select(getSelectedModels);\r\n yield put(modelsSelected(models));\r\n yield put(categoriesSelected(categories))\r\n }\r\n}\r\n\r\n//カタログ更新アクションを待ち受ける\r\nfunction* handlePutCatalog(context) {\r\n while(true) {\r\n const action = yield take(PUT_REQUEST);\r\n const payload = yield call(putCatalog,\r\n action.payload.file,\r\n action.payload.putData,\r\n action.payload.zipFile,\r\n );\r\n if(payload) {\r\n yield put(putSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('put_success')}\r\n ));\r\n } else {\r\n yield put(putFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('put_failed')}\r\n ));\r\n yield call(context.history.push, 'catalog_list');\r\n }\r\n }\r\n}\r\n\r\n\r\n//新規登録アクションを待ち受ける\r\nfunction* handlePostNewCatalog(context) {\r\n while(true){\r\n const action = yield take(POST_NEW_REQUEST);\r\n const payload = yield call(postNewCatalog,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.zipFile);\r\n if(payload) {\r\n yield put(postNewSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_new_success')}\r\n ));\r\n } else {\r\n yield put(postNewFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_new_failed')}\r\n ));\r\n yield call(context.history.push, 'catalog_list');\r\n }\r\n }\r\n}\r\n\r\n//フォーム(新規)表示アクションを待ち受ける\r\nfunction* handleOpenNewForm(context) {\r\n while(true){\r\n yield take(OPEN_NEW);\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'catalog');\r\n }\r\n}\r\n\r\n//フォーム(アップグレード)表示アクションを待ち受ける\r\nfunction* handleOpenUpgradeForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_UPGRADE);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'catalog');\r\n }\r\n}\r\n\r\n//フォーム(編集)表示アクションを待ち受ける\r\nfunction* handleOpenEditForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_EDIT);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'catalog');\r\n }\r\n}\r\n\r\n\r\n//リストへ戻るためのアクションを待ち受ける\r\nfunction* handleBackToList(context) {\r\n while(true){\r\n yield take(BACK_TO_LIST);\r\n const confirmChannel = channel()\r\n\r\n yield put(confirmModule.showConfirm({\r\n title: t('confirm'),\r\n content: t('back_to_list_confirm'),\r\n actions: {\r\n ok: () => {\r\n context.history.push('catalog_list');\r\n }\r\n }\r\n }))\r\n }\r\n}\r\n\r\n\r\n//マニュアル削除のアクションを待ち受ける\r\nfunction* handleDeleteCatalog(context) {\r\n while(true) {\r\n const action = yield take(DELETE_REQUEST)\r\n const payload = yield call(deleteCatalog, action.payload)\r\n if(payload) {\r\n yield put(deleteSuccess());\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('delete_catalog_success')}\r\n ));\r\n } else {\r\n yield put(deleteFailed());\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('delete_catalog_failed')}\r\n ));\r\n }\r\n context.history.push('catalog_list');\r\n }\r\n}\r\n\r\n\r\n//カテゴリ選択のアクションを待ち受ける\r\nfunction * handleCategoriesSelected(context) {\r\n while(true) {\r\n const action = yield take(CATEGORIES_SELECTED);\r\n\r\n //カテゴリ選択で紐づかなくなった機種を外す\r\n const categories = yield select(getCategories);\r\n const selectedCategories = yield select(getSelectedCategories);\r\n const selectedModels = yield select(getSelectedModels);\r\n const models = yield select(getModels);\r\n\r\n const formType = yield select(getFormType);\r\n\r\n if( categories && selectedCategories && selectedModels && models) {\r\n const _selectedCategories = categories.filter(x => selectedCategories.includes(x.id));\r\n const _selectedModels = models.filter(x => selectedModels.includes(x.id) &&\r\n _selectedCategories.map(s => s.category_short_name).includes(x.category_code));\r\n yield put(modelsSelected(_selectedModels.map(x => { return x.id })));\r\n }\r\n\r\n // カテゴリに応じた機種一覧を取得する\r\n yield put(modelsAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\n//機種選択のアクションを待ち受ける\r\nfunction * handleModelsSelected(context) {\r\n while(true) {\r\n const action = yield take(MODELS_SELECTED);\r\n // 機種に応じた国一覧を取得する\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\nconst validateString = (str, maxLen, minLen=0) => {\r\n if (str && minLen <= str.length && str.length <= maxLen) {\r\n return true;\r\n }else {\r\n return false;\r\n }\r\n}\r\n\r\nconst validateNumber = (num, maxNum, minNum=0) => {\r\n if (num && minNum <= num && num <= maxNum ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * バージョン(xx.xx.xx)を比較可能な値に変換する\r\n */\r\nconst getRelativeVer = (x) => {\r\n const xSplit = String(x).split('.');\r\n const x1 = Number(xSplit[0]) || 0;\r\n const x2 = Number(xSplit[1]) || 0;\r\n const x3 = Number(xSplit[2]) || 0;\r\n return x1*100+x2*10+x3;\r\n}\r\n\r\n\r\n//各ステップの次へボタン押下のリクエストを待ち受ける(バリデーション)\r\n//[参考]複雑なフォームでなければ、Redux-FormやFormikを利用してバリデーションする\r\nfunction * handleStepNextRequest(context) {\r\n while (true) {\r\n const action = yield take(STEP_NEXT_REQUEST);\r\n const formType = yield select(getFormType);\r\n const catalogForm = yield select(getCatalogForm);\r\n const currentStep = catalogForm.activeStep;\r\n switch (currentStep) {\r\n case 0:\r\n if (catalogForm.catalog.file_name !== '' &&\r\n catalogForm.catalog.file_type !== '' ){\r\n yield put(stepNext())\r\n }else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_input_error')}\r\n ));\r\n }\r\n break;\r\n case 1:\r\n yield put(stepNext())\r\n /*\r\n if (catalogForm.categories.length == 0 || catalogForm.models.length == 0 ) {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('category_model_input_error')}\r\n ));\r\n }\r\n else {\r\n yield put(stepNext())\r\n }\r\n */\r\n break;\r\n case 2:\r\n /* 国として(共栄社)のみとしたい場合は空となるため、バリデーションを外す\r\n if(catalogForm.countries.length !== 0) { //ページ数のバリデーションも後で追加\r\n */\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n switch (catalogForm.formType) {\r\n case formTypes.NEW:\r\n const file = yield select(getFile);\r\n const zipFile = yield select(getZipFile);\r\n const postData = yield select(getPostNewData);\r\n yield put(postNewRequest({file: file, postData: postData, zipFile: zipFile }));\r\n break;\r\n case formTypes.UPGRADE:\r\n yield put(postUpgradeRequest({\r\n upgradeTargetId: yield select(getUpgradeTargetId),\r\n file: yield select(getFile),\r\n postData: yield select(getPostUpgradeData),\r\n zipFile: yield select(getZipFile)\r\n }));\r\n break;\r\n case formTypes.EDIT:\r\n yield put(putRequest({\r\n file: yield select(getFile),\r\n putData: yield select(getPutData),\r\n zipFile: yield select(getZipFile)\r\n }));\r\n default:\r\n break;\r\n }\r\n /*\r\n } else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('country_input_error')}\r\n ));\r\n }\r\n */\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handlePutSuccess,\r\n handlePostNewSuccess,\r\n handlePostUpgradeSuccess,\r\n handleSelectedFile,\r\n handleSelectedFileSuccess,\r\n handleSelectedFileFailed,\r\n handleSelectedZipFile,\r\n handleSelectedZipFileFailed,\r\n handleFetchCatalog,\r\n handleFetchSuccess,\r\n handleOpenNewForm,\r\n handleOpenEditForm,\r\n handleOpenUpgradeForm,\r\n handleBackToList,\r\n handleModelsSelected,\r\n handleCategoriesSelected,\r\n handleStepNextRequest,\r\n handlePostNewCatalog,\r\n handlePutCatalog,\r\n handleDeleteCatalog,\r\n];\r\n","import http from './http'\r\nimport { initialState, getFormattedTime, saveFile } from './index';\r\n\r\n\r\n//(検索・CSV出力用) クエリ文字列の作成\r\n//Axiosの場合パラーメータとして直接渡せるらしいので、時間があれば変更する\r\nconst createQueryString = (queries) => {\r\n const {page, per_page, model_name, serial, file_types, compiler, control_number, declaration_date, sort, categories, lang} = queries;\r\n\r\n var queryString = \"?\";\r\n queryString += \"page=\" + String(page);\r\n queryString += \"&per_page=\" + per_page;\r\n if(model_name){\r\n queryString += \"&model_name=\" + model_name;\r\n }\r\n if(serial){\r\n queryString += \"&serial=\" + serial;\r\n }\r\n if(compiler) {\r\n queryString += \"&compiler=\" + compiler;\r\n }\r\n if(control_number) {\r\n queryString += \"&control_number=\" + control_number;\r\n }\r\n if(declaration_date) {\r\n queryString += \"&declaration_date=\" + declaration_date;\r\n }\r\n if (file_types.EV){\r\n queryString += \"&file_type=Evapo\";\r\n }\r\n if (file_types.EU){\r\n queryString += \"&file_type=EU_Doc\";\r\n }\r\n if (file_types.UK){\r\n queryString += \"&file_type=UK_Doc\";\r\n }\r\n if (file_types.US){\r\n queryString += \"&file_type=US_Regs\";\r\n }\r\n if (sort && sort.key && sort.order) {\r\n queryString += \"&sort=\" + sort.key;\r\n queryString += \"&order=\" + sort.order;\r\n }\r\n if(categories) {\r\n categories.forEach(x => {\r\n queryString += \"&categories=\" + x;\r\n }); \r\n }\r\n if(lang) {\r\n queryString += `&lang=${lang}`;\r\n }\r\n return queryString;\r\n}\r\n\r\n\r\n//宣言書検索\r\nexport const searchDocList = (queries=initialState) => {\r\n return http.get('api/docs'+createQueryString(queries))\r\n .then( res => {\r\n return res.data\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n//宣言書CSV出力\r\nexport const exportDocCsv = (queries=initialState) => {\r\n return http.get(\"/api/docs/csv\"+createQueryString(queries),\r\n { responseType:'blob', dataType:'binary'})\r\n .then((response) => {\r\n const fileName = `doc_${getFormattedTime()}.csv`;\r\n\r\n if (window.navigator.msSaveBlob) {\r\n // for IE\r\n window.navigator.msSaveBlob(new Blob([response.data]), fileName);\r\n }\r\n else {\r\n const url = window.URL.createObjectURL(new Blob([response.data], {type: `text/csv`}));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName); //or any other extension\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n })\r\n .catch( res => {\r\n return null;\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n\r\n/**宣言書CSVアップロード */\r\nexport const uploadDocCsv = (file) => {\r\n const data = new FormData();\r\n data.append('csvfile', file)\r\n return http.post(\"/api/docs/csv/upload\", data)\r\n .then( res => {\r\n return res;\r\n })\r\n .catch((error) => {\r\n if (error.response) {\r\n return error.response;\r\n } \r\n else {\r\n return null;\r\n }\r\n });\r\n}\r\n\r\n//宣言書データ取得\r\nexport const fetchDoc = (id) => {\r\n return http.get(`api/docs/${id}`)\r\n .then( res => {\r\n return res.data\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n//宣言書データ削除\r\nexport const deleteDoc = (id) => {\r\n return http.delete(`api/docs/${id}`)\r\n .then( res => {\r\n return `Success delete the file ${id}`\r\n })\r\n .catch( err => {\r\n return null;\r\n })\r\n}\r\n\r\n\r\n//宣言書新規登録\r\nexport const postNewDoc = (file, postData, zipFile) => {\r\n //IDは含めない\r\n delete postData.doc.id;\r\n return saveFile(file)\r\n .then(res => {\r\n if(zipFile) {\r\n saveFile(zipFile);\r\n }else{\r\n delete postData.doc.zip_file_name;\r\n }\r\n })\r\n .then( resp => {\r\n return http.post(\"/api/docs\", postData)\r\n .then( res => {\r\n return res.data\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n })\r\n .catch( err => {\r\n return null;\r\n });\r\n}\r\n\r\n\r\n//宣言書データ更新\r\nexport const putDoc = (file, putData, zipFile) => {\r\n if (file){\r\n saveFile(file);\r\n }\r\n if (zipFile){\r\n saveFile(zipFile);\r\n }\r\n return http.put(`/api/docs/${putData.doc.id}`, putData)\r\n .then( res => {\r\n return res.data\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n//宣言書アップグレード\r\nexport const postUpgradeDoc = (upgradeTargetId, file, postData, zipFile) => {\r\n //IDは含めない\r\n delete postData.doc.id;\r\n return saveFile(file)\r\n .then(res => {\r\n if(!!zipFile) {\r\n saveFile(zipFile);\r\n }else{\r\n delete postData.doc.zip_file_name;\r\n }\r\n })\r\n .then( resp => {\r\n return http.post(`/api/docs/${upgradeTargetId}/upgrade`, postData)\r\n .then( res => {\r\n return res.data\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n })\r\n .catch( err => {\r\n return null;\r\n });\r\n}","// Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport * as messageModule from '../message';\nimport {t} from 'i18next';\n\nimport { downloadFile } from '../api';\nimport { searchDocList, exportDocCsv, uploadDocCsv } from '../api/doc';\nimport * as fileTypes from '../../constants/fileTypes';\n\n// Actions\nconst MENU_SELECTED = 'bmm/docList/MENU_SELECTED';\nconst RESET_ALL = 'bmm/docList/RESET_ALL';\nconst RESET_QUERIES = 'bmm/docList/RESET_QUERIES';\nconst SEARCH_REQUEST = 'bmm/docList/SEARCH_REQUEST';\nconst SEARCH_SUCCESS = 'bmm/docList/SEARCH_SUCCESS';\nconst SEARCH_FAILURE = 'bmm/docList/SEARCH_FAILURE';\nconst PAGING_REQUEST = 'bmm/docList/PAGING_REQUEST';\nconst PAGING_SUCCESS = 'bmm/docList/PAGING_SUCCESS';\nconst PAGING_FAILURE = 'bmm/docList/PAGING_FAILURE';\nconst SET_UPLOAD_FILE = 'bmm/docList/SET_UPLOAD_FILE';\nconst UPLOAD_CSV_REQUEST = 'bmm/docList/UPLOAD_CSV_REQUEST';\nconst UPLOAD_CSV_SUCCESS = 'bmm/docList/UPLOAD_CSV_SUCCESS';\nconst UPLOAD_CSV_FAILED = 'bmm/docList/UPLOAD_CSV_FAILED';\nconst EXPORT_CSV_REQUEST = 'bmm/docList/EXPORT_CSV_REQUEST';\nconst EXPORT_CSV_SUCCESS = 'bmm/docList/EXPORT_CSV_SUCCESS';\nconst EXPORT_CSV_FAILED = 'bmm/docList/EXPORT_CSV_FAILED';\nconst INPUT_CHANGED = 'bmm/docList/INPUT_CHANGED';\nconst FILE_TYPE_CHANGED = 'bmm/docList/FILE_TYPE_CHANGED';\nconst PAGE_CHANGED = 'bmm/docList/PAGE_CHANGED';\nconst PER_PAGE_CHANGED = 'bmm/docList/PER_PAGE_CHANGED';\nconst SORT_CHANGED = 'bmm/docList/SORT_CHANGED';\nconst DOWNLOAD_REQUEST = 'bmm/docList/DOWNLOAD_REQUEST';\nconst DOWNLOAD_SUCCESS = 'bmm/docList/DOWNLOAD_SUCCESS';\nconst DOWNLOAD_FAILED = 'bmm/docList/DOWNLOAD_FAILED';\n\n\n// Action Creators\nexport const menuSelected = createAction(MENU_SELECTED);\nexport const resetAll = createAction(RESET_ALL);\nexport const resetQueries = createAction(RESET_QUERIES);\nexport const searchRequest = createAction(SEARCH_REQUEST);\nexport const searchSuccess = createAction(SEARCH_SUCCESS);\nexport const searchFailure = createAction(SEARCH_FAILURE);\nexport const pagingRequest = createAction(PAGING_REQUEST);\nexport const pagingSuccess = createAction(PAGING_SUCCESS);\nexport const pagingFailure = createAction(PAGING_FAILURE);\nexport const setUploadFile = createAction(SET_UPLOAD_FILE);\nexport const uploadCsvRequest = createAction(UPLOAD_CSV_REQUEST);\nexport const uploadCsvSuccess = createAction(UPLOAD_CSV_SUCCESS);\nexport const uploadCsvFailed = createAction(UPLOAD_CSV_FAILED);\nexport const exportCsvRequest = createAction(EXPORT_CSV_REQUEST);\nexport const exportCsvSuccess = createAction(EXPORT_CSV_SUCCESS);\nexport const exportCsvFailed = createAction(EXPORT_CSV_FAILED);\nexport const inputChanged = createAction(INPUT_CHANGED);\nexport const fileTypeChanged = createAction(FILE_TYPE_CHANGED);\nexport const pageChanged = createAction(PAGE_CHANGED);\nexport const perPageChanged = createAction(PER_PAGE_CHANGED);\nexport const sortChanged = createAction(SORT_CHANGED);\nexport const downloadRequest = createAction(DOWNLOAD_REQUEST);\nexport const downloadSuccess = createAction(DOWNLOAD_SUCCESS);\nexport const downloadFailed = createAction(DOWNLOAD_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: [],\n queries: {\n page: 1,\n per_page: 10,\n model_name: '',\n serial: '',\n compiler: '',\n control_number: '',\n declaration_date: null,\n file_types: {\n US: true,\n UK: true,\n EU: true,\n },\n sort: {\n key: '',\n order: ''\n },\n categories: [],\n }\n};\n\n\n// Reducer\nexport default handleActions({\n [MENU_SELECTED]: (state, action) => {\n return state;\n },\n [RESET_ALL]: (state, action) => {\n return initialState;\n },\n [RESET_QUERIES]: (state, action) => {\n return {\n ...state,\n queries: initialState.queries\n }\n },\n [SEARCH_REQUEST]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1\n },\n isLoading: true\n }\n },\n [SEARCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [SEARCH_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [PAGING_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [PAGING_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [PAGING_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [SET_UPLOAD_FILE]: (state, action) => {\n return {\n ...state,\n upload_file: action.payload\n }\n },\n [UPLOAD_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [UPLOAD_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [UPLOAD_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [EXPORT_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [EXPORT_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [EXPORT_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [INPUT_CHANGED]: (state, action) => {\n return {\n ...state,\n queries:{\n ...state.queries,\n [action.payload.key]: action.payload.value\n }\n }\n },\n [FILE_TYPE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n file_types:{\n ...state.queries.file_types,\n [action.payload.key]: action.payload.value\n }\n }\n }\n },\n [PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: action.payload,\n }\n }\n },\n [PER_PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1,\n per_page: action.payload,\n }\n }\n },\n [SORT_CHANGED]: (state, action) => {\n let _sort;\n if (state.queries.sort.key !== action.payload) {\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else{\n if(state.queries.sort.order === ''){\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else if(state.queries.sort.order === 'asc'){\n _sort = {\n key: action.payload,\n order: 'desc'\n }\n }\n else if(state.queries.sort.order === 'desc'){\n _sort = {\n key: '',\n order: ''\n }\n }\n }\n return {\n ...state,\n queries: {\n ...state.queries,\n sort: _sort\n }\n }\n },\n [DOWNLOAD_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [DOWNLOAD_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [DOWNLOAD_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n},initialState);\n\n// Selectors\nconst getQueries = state => state.docList.queries;\nconst getUploadFile = state => state.docList.upload_file;\nconst getLang = state => {\n return {\n lang: state.auth.language===\"en\" ? \"en-US\" : \"ja-JP\"\n }\n};\n\n// Sagas\nfunction* handleSearchDocList(context) {\n while(true){\n const action = yield take(SEARCH_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchDocList, queries);\n if(payload) {\n yield put(searchSuccess(payload));\n } else {\n yield put(searchFailure('error'));\n }\n }\n}\n\nfunction* handlePagingDocList(context) {\n while(true){\n const action = yield take(PAGING_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchDocList, queries);\n if(payload) {\n yield put(pagingSuccess(payload));\n } else {\n yield put(pagingFailure('error'));\n }\n }\n}\n\nfunction* handleUploadCsv(context) {\n while(true) {\n const action = yield take(UPLOAD_CSV_REQUEST);\n const uploadFile = yield select(getUploadFile);\n const payload = yield call(uploadDocCsv, uploadFile);\n if(!!payload && payload.status == 200) {\n yield put(uploadCsvSuccess(payload));\n yield put(messageModule.showMessage(\n {type: 'success', content: t('upload_countries_csv_success')}\n ));\n } else if (!!payload && payload.status >= 400) {\n yield put(uploadCsvFailed('error'));\n yield put(messageModule.showMessage(\n {type: 'error', content: t('file_format_is_different')}\n ));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: t('upload_countries_csv_failed')}\n ));\n }\n }\n}\n\nfunction* handleExportCsv(context){\n while(true){\n const action = yield take(EXPORT_CSV_REQUEST);\n const lang = yield select(getLang);\n const payload = yield call(exportDocCsv, {\n ...action.payload,\n ...lang\n });\n if(payload) {\n yield put(exportCsvSuccess(payload));\n }else{\n yield put(exportCsvFailed('error'));\n }\n }\n}\n\nfunction* handleMenuSelected(context){\n while(true){\n yield take(MENU_SELECTED);\n const queries = yield select(getQueries);\n yield call(context.history.push, '/doc_list');\n }\n}\n\nfunction* handlePageChanged(context) {\n while(true){\n yield take(PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(pagingRequest(queries));\n }\n}\n\nfunction* handlePerPageChanged(context) {\n while(true){\n yield take(PER_PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction * handleSortChanged(context) {\n while(true){\n yield take(SORT_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction* handleDownloadRequest(context) {\n while(true) {\n const action = yield take(DOWNLOAD_REQUEST);\n const payload = yield call(downloadFile, action.payload);\n if(payload) {\n yield put(downloadSuccess(payload));\n } else {\n yield put(downloadFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleSearchDocList,\n handlePagingDocList,\n handleMenuSelected,\n handlePageChanged,\n handlePerPageChanged,\n handleSortChanged,\n handleUploadCsv,\n handleDownloadRequest,\n handleExportCsv,\n];\n","//宣言書タイプ\r\nexport const US = 'US_Regs'; //US規制文書\r\nexport const UK = 'UK_Doc'; //UK適合宣言\r\nexport const EU = 'EU_Doc'; //EU適合宣言\r\nexport const EV = 'Evapo'; //エバポ保証声明書\r\n\r\n\r\n\r\n/**\r\n * ログイン後にUS規制文書のみチェックする国ID\r\n */\r\nexport const US_COUNTRY_IDS = [\r\n 5 //アメリカ\r\n];\r\n\r\n/**\r\n * ログイン後にUK適合宣言のみをチェックする国ID\r\n */\r\nexport const UK_COUNTRY_IDS = [\r\n 19 //イギリス\r\n];\r\n\r\n/**\r\n * ログイン後にEU適合宣言のみをチェックする国ID\r\n */\r\nexport const EU_COUNTRY_IDS = [\r\n 2, //アイルランド\r\n 23, //イタリア\r\n 35, //エストニア\r\n 40, //オーストリア\r\n 43, //オランダ\r\n 59, //キプロス\r\n 62, //ギリシャ\r\n 74, //クロアチア\r\n 103, //スウェーデン\r\n 106, //スペイン\r\n 109, //スロバキア\r\n 110, //スロベニア\r\n 128, //チェコ\r\n 136, //デンマーク\r\n 137, //ドイツ\r\n 174, //ハンガリー\r\n 180, //フィンランド\r\n 187, //フランス\r\n 191, //ブルガリア\r\n 201, //ベルギー\r\n 202, //ポーランド\r\n 207, //ポルトガル\r\n 217, //マルタ\r\n 238, //ラトビア\r\n 239, //リトアニア\r\n 243, //ルーマニア\r\n 244, //ルクセンブルク\r\n];","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport { login, adminLogin, refreshLogin, getAccessToken, getAdminAccessToken } from '../api';\nimport i18next from 'i18next';\n\nimport * as docListModule from './docList';\nimport * as messageModule from '../message';\nimport { EU_COUNTRY_IDS, UK_COUNTRY_IDS, US_COUNTRY_IDS } from '../../constants/docTypes';\n\n//Actions\nconst LOGIN_REQUEST = 'bmm/docAuth/LOGIN_REQUEST';\nconst LOGIN_SUCCESS = 'bmm/docAuth/LOGIN_SUCCESS';\nconst LOGIN_FAILED = 'bmm/docAuth/LOGIN_FAILED';\nconst ADMIN_LOGIN_REQUEST = 'bmm/docAuth/ADMIN_LOGIN_REQUEST';\nconst ADMIN_LOGIN_SUCCESS = 'bmm/docAuth/ADMIN_LOGIN_SUCCESS';\nconst ADMIN_LOGIN_FAILED = 'bmm/docAuth/ADMIN_LOGIN_FAILED';\nconst REFRESH_REQUEST = 'bmm/docAuth/REFRESH_REQUEST';\nconst REFRESH_SUCCESS = 'bmm/docAuth/REFRESH_SUCCESS';\nconst REFRESH_FAILED = 'bmm/docAuth/REFRESH_FAILED';\nconst AUTO_LOGIN_REQUEST = 'bmm/docAuth/AUTO_LOGIN_REQUEST';\nconst AUTO_LOGIN_SUCCESS = 'bmm/docAuth/AUTO_LOGIN_SUCCESS';\nconst AUTO_LOGIN_FAILED = 'bmm/docAuth/AUTO_LOGIN_FAILED';\nconst AUTO_LOGIN_STOPPED = 'bmm/docAuth/AUTO_LOGIN_STOPPED';\nconst AUTO_ADMIN_LOGIN_REQUEST = 'bmm/docAuth/AUTO_ADMIN_LOGIN_REQUEST';\nconst AUTO_ADMIN_LOGIN_SUCCESS = 'bmm/docAuth/AUTO_ADMIN_LOGIN_SUCCESS';\nconst AUTO_ADMIN_LOGIN_FAILED = 'bmm/docAuth/AUTO_ADMIN_LOGIN_FAILED';\nconst AUTO_ADMIN_LOGIN_STOPPED = 'bmm/docAuth/AUTO_ADMIN_LOGIN_STOPPED';\nconst LOGOUT = 'bmm/docAuth/LOGOUT';\nconst CHANGE_LANGUAGE = 'bmm/docAuth/CHANGE_LANGUAGE';\nconst FORM_CHANGED = 'bmm/docAuth/FORM_CHANGED';\n\n//Action Creators\nexport const loginRequest = createAction(LOGIN_REQUEST);\nexport const loginSuccess = createAction(LOGIN_SUCCESS);\nexport const loginFailed = createAction(LOGIN_FAILED);\nexport const adminLoginRequest = createAction(ADMIN_LOGIN_REQUEST);\nexport const adminLoginSuccess = createAction(ADMIN_LOGIN_SUCCESS);\nexport const adminLoginFailed = createAction(ADMIN_LOGIN_FAILED);\nexport const refreshRequest = createAction(REFRESH_REQUEST);\nexport const refreshSuccess = createAction(REFRESH_SUCCESS);\nexport const refreshFailed = createAction(REFRESH_FAILED);\nexport const autoLoginRequest = createAction(AUTO_LOGIN_REQUEST);\nexport const autoLoginSuccess = createAction(AUTO_LOGIN_SUCCESS);\nexport const autoLoginFailed = createAction(AUTO_LOGIN_FAILED);\nexport const autoLoginStopped = createAction(AUTO_LOGIN_STOPPED);\nexport const autoAdminLoginRequest = createAction(AUTO_ADMIN_LOGIN_REQUEST);\nexport const autoAdminLoginSuccess = createAction(AUTO_ADMIN_LOGIN_SUCCESS);\nexport const autoAdminLoginFailed = createAction(AUTO_ADMIN_LOGIN_FAILED);\nexport const autoAdminLoginStopped = createAction(AUTO_ADMIN_LOGIN_STOPPED);\nexport const logout = createAction(LOGOUT);\nexport const changeLanguage = createAction(CHANGE_LANGUAGE);\nexport const formChanged = createAction(FORM_CHANGED);\n\n//initialState\nconst initialState = {\n isLoading: false,\n isLoggedIn: false, //ログイン中かどうか\n account: {\n user_name: '',\n country_id: '', //国ID\n is_superuser: false, //管理者かどうか\n },\n language: '', //状態変化がないと画面更新が走らない\n form: {\n username: '',\n password: '',\n }\n}\n\nexport default handleActions({\n [LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [REFRESH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [REFRESH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [REFRESH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [AUTO_ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_ADMIN_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [LOGOUT]: (state, action) => {\n return initialState;\n },\n [CHANGE_LANGUAGE]: (state, action) => {\n i18next.changeLanguage(action.payload);\n return {\n ...state,\n language: action.payload,\n }\n },\n [FORM_CHANGED]: (state, action) => {\n return {\n ...state,\n form: {\n ...state.form,\n [action.payload.key]: action.payload.value,\n }\n }\n },\n},initialState);\n\n//Selectors\n\n//ログインフォームデータ取得\nconst getLoginForm = state => state.docAuth.form;\nconst getIsLoggedIn = state => state.docAuth.isLoggedIn;\nconst getIsSuperuser = state => state.docAuth.account.is_superuser;\nconst getQueries = state => state.docList.queries;\n\n//Sagas\nfunction *handleLoginRequest(context) {\n while(true){\n yield take(LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(login, loginForm);\n if(payload) {\n yield put(loginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(loginFailed());\n }\n }\n}\n\nfunction *handleLoginSuccess(context) {\n while(true){\n const action = yield take(LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'doc');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n yield setFileTypeByCountryId(account.country_id);\n\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/doc_list');\n }\n }\n}\n\nfunction *handleAdminLoginRequest(context) {\n while(true){\n yield take(ADMIN_LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(adminLogin, loginForm);\n if(payload) {\n yield put(adminLoginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(adminLoginFailed());\n }\n }\n}\n\nfunction *handleAdminLoginSuccess(context) {\n while(true){\n const action = yield take(ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'doc');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/doc_list');\n }\n }\n}\n\nfunction *handleRefreshRequest(context) {\n while(true){\n yield take(REFRESH_REQUEST);\n const payload = yield call(refreshLogin);\n if(payload) {\n yield put(refreshSuccess(payload));\n } else {\n yield put(loginFailed());\n yield call(context.history.push, '/doc_login');\n }\n }\n}\n\nfunction *handleRefreshSuccess(context) {\n while(true){\n const action = yield take(REFRESH_SUCCESS);\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n }\n}\n\nfunction *handleAutoLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoLoginStopped());\n }\n else {\n //yield put(docListModule.menuSelected({type: action.payload}));\n const payload = yield call(getAccessToken);\n if(payload) {\n yield put(autoLoginSuccess(payload));\n } else {\n yield put(autoLoginFailed());\n yield call(context.history.push, '/doc_login');\n }\n }\n }\n}\n\nfunction *handleAutoLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'doc');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n yield setFileTypeByCountryId(account.country_id);\n\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(docListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/doc_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\nfunction *handleAutoAdminLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoAdminLoginStopped());\n }\n else {\n const payload = yield call(getAdminAccessToken, action.payload);\n if(payload) {\n yield put(autoAdminLoginSuccess(payload));\n } else {\n yield put(autoAdminLoginFailed());\n yield call(context.history.push, '/doc_login/admin');\n }\n }\n }\n}\n\nfunction *handleAutoAdminLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'doc');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(docListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/doc_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\n\nfunction *handleLogout(context) {\n while(true) {\n const action = yield take(LOGOUT);\n const isAdmin = action.payload;\n //ローカルストレージのToken削除\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n //オンラインギャラリーのCookie削除\n document.cookie = \"CAKEPHP=; path=/; max-age=0\";\n //yield put(changeLanguage(initialState.language));\n\n if(isAdmin) {\n yield call(context.history.push, '/doc_login/admin');\n }\n else {\n yield call(context.history.push, '/doc_login');\n }\n }\n}\n\n\n/**\n * ログインユーザーの国に応じてファイル種別の初期チェック状態を切り替える\n */\nfunction *setFileTypeByCountryId(countryId) {\n if (US_COUNTRY_IDS.includes(countryId)) {\n yield put(docListModule.fileTypeChanged({key: \"US\", value: true}));\n yield put(docListModule.fileTypeChanged({key: \"UK\", value: false}));\n yield put(docListModule.fileTypeChanged({key: \"EU\", value: false}));\n }\n else if (UK_COUNTRY_IDS.includes(countryId)) {\n yield put(docListModule.fileTypeChanged({key: \"US\", value: false}));\n yield put(docListModule.fileTypeChanged({key: \"UK\", value: true}));\n yield put(docListModule.fileTypeChanged({key: \"EU\", value: true}));\n }\n else if (EU_COUNTRY_IDS.includes(countryId)) {\n yield put(docListModule.fileTypeChanged({key: \"US\", value: false}));\n yield put(docListModule.fileTypeChanged({key: \"UK\", value: false}));\n yield put(docListModule.fileTypeChanged({key: \"EU\", value: true}));\n }\n}\n\n// Sagas\nexport const sagas = [\n handleLoginRequest,\n handleLoginSuccess,\n handleAdminLoginRequest,\n handleAdminLoginSuccess,\n handleRefreshRequest,\n handleRefreshSuccess,\n handleAutoLoginRequest,\n handleAutoLoginSuccess,\n handleAutoAdminLoginRequest,\n handleAutoAdminLoginSuccess,\n handleLogout,\n]\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { channel } from 'redux-saga';\r\nimport { call, put, take, select } from 'redux-saga/effects';\r\nimport {t} from 'i18next';\r\n\r\nimport * as countriesAction from '../countries';\r\nimport * as categoriesAction from '../categories';\r\nimport * as modelsAction from '../models';\r\nimport * as messageModule from '../message';\r\nimport * as confirmModule from '../confirm';\r\n\r\nimport { checkFile } from '../api';\r\nimport { fetchDoc, postNewDoc, putDoc, deleteDoc } from '../api/doc';\r\nimport * as formTypes from '../../constants/formTypes';\r\nimport * as fileTypes from '../../constants/docTypes';\r\nimport fileTitle from '../../constants/fileTitle';\r\n\r\n\r\n// Initial State\r\nconst initialState = {\r\n activeStep: 0,\r\n formType: null,\r\n hasFormOpened: false,\r\n isLoading: false,\r\n isUploading: false,\r\n isDeleting: false,\r\n file: null,\r\n zipFile: null,\r\n upgradeTargetId: null, //アップグレード対象ID\r\n isSerialEditable: false,\r\n doc: {\r\n id: null, //宣言書ID\r\n file_name: '', //ファイル名\r\n file_type: '', //ファイルタイプ\r\n title_ja: '', //日本語タイトル\r\n title_en: '', //英語タイトル\r\n declaration_date: null, //宣言日\r\n compiler: '', //コンパイラー\r\n control_number: '', //管理番号\r\n overview_ja: '', //日本語概要\r\n overview_en: '', //英語概要\r\n display: true, //表示させるかどうか\r\n },\r\n new_serials:[], //新規機番データ\r\n serials:[], //過去機番データ\r\n models: [], //選択中機種\r\n countries:[], //国権限\r\n categories:[], //機種カテゴリ\r\n editable_max_version: null, //編集時の最大バージョン\r\n}\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/docForm/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/docForm/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/docForm/FETCH_FAILED';\r\nconst UPLOAD_REQUEST = 'bmm/docForm/UPLOAD_REQUEST';\r\nconst UPLOAD_SUCCESS = 'bmm/docForm/UPLOAD_SUCCESS';\r\nconst UPLOAD_FAILED = 'bmm/docForm/UPLOAD_FAILED';\r\nconst POST_NEW_REQUEST = 'bmm/docForm/POST_NEW_REQUEST';\r\nconst POST_NEW_SUCCESS = 'bmm/docForm/POST_NEW_SUCCESS';\r\nconst POST_NEW_FAILED = 'bmm/docForm/POST_NEW_FAILED';\r\nconst POST_UPGRADE_REQUEST = 'bmm/docForm/POST_UPGRADE_REQUEST';\r\nconst POST_UPGRADE_SUCCESS = 'bmm/docForm/POST_UPGRADE_SUCCESS';\r\nconst POST_UPGRADE_FAILED = 'bmm/docForm/POST_UPGRADE_FAILED';\r\nconst PUT_REQUEST = 'bmm/docForm/PUT_CATALOG';\r\nconst PUT_SUCCESS = 'bmm/docForm/PUT_SUCCESS';\r\nconst PUT_FAILED = 'bmm/docForm/PUT_FAILED';\r\nconst DELETE_REQUEST = 'bmm/docForm/DELETE_REQUEST';\r\nconst DELETE_SUCCESS = 'bmm/docForm/DELETE_SUCCESS';\r\nconst DELETE_FAILED = 'bmm/docForm/DELETE_FAILED';\r\nconst OPEN_NEW = 'bmm/docForm/OPEN_NEW';\r\nconst OPEN_EDIT = 'bmm/docForm/OPEN_EDIT';\r\nconst OPEN_UPGRADE = 'bmm/docForm/OPEN_UPGRADE';\r\nconst INPUT_CHANGED = 'bmm/docForm/INPUT_CHANGED';\r\nconst RESET_FORM = 'bmm/docForm/RESET_FORM';\r\nconst STEP_NEXT_REQUEST = 'bmm/docForm/STEP_NEXT_REQUEST';\r\nconst STEP_NEXT = 'bmm/docForm/STEP_NEXT';\r\nconst STEP_BACK = 'bmm/docForm/STEP_BACK';\r\nconst STEP_RESET = 'bmm/docForm/STEP_RESET';\r\nconst BACK_TO_LIST = 'bmm/docForm/BACK_TO_LIST';\r\nconst FILE_SELECTED = 'bmm/docForm/FILE_SELECTED';\r\nconst FILE_SELECTED_SUCCESS = 'bmm/docForm/FILE_SELECTED_SUCCESS';\r\nconst FILE_SELECTED_FAILED = 'bmm/docForm/FILE_SELECTED_FAILED';\r\nconst CHANGE_LOG_FILE_SELECTED = 'bmm/docForm/CHANGE_LOG_FILE_SELECTED';\r\nconst CHANGE_LOG_FILE_SUCCESS = 'bmm/docForm/CHANGE_LOG_FILE_SUCCESS';\r\nconst CHANGE_LOG_FILE_FAILED = 'bmm/docForm/CHANGE_LOG_FILE_FAILED';\r\nconst SERIAL_CHANGED = 'bmm/docForm/SERIAL_CHANGED';\r\nconst PAST_SERIAL_CHANGED = 'bmm/docForm/PAST_SERIAL_CHANGED';\r\nconst CATEGORIES_SELECTED = 'bmm/docForm/CATEGORIES_SELECTED';\r\nconst MODELS_SELECTED = 'bmm/docForm/MODELS_SELECTED';\r\nconst COUNTRIES_SELECTED = 'bmm/docForm/COUNTRIES_SELECTED';\r\nconst RESET_CATALOG = 'bmm/docForm/RESET_CATALOG';\r\nconst PREPARE_UPGRADE = 'bmm/docForm/PREPARE_UPGRADE';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\nexport const uploadRequest = createAction(UPLOAD_REQUEST);\r\nexport const uploadSuccess = createAction(UPLOAD_SUCCESS);\r\nexport const uploadFailed = createAction(UPLOAD_FAILED);\r\nexport const postNewRequest = createAction(POST_NEW_REQUEST);\r\nexport const postNewSuccess = createAction(POST_NEW_SUCCESS);\r\nexport const postNewFailed = createAction(POST_NEW_FAILED);\r\nexport const postUpgradeRequest = createAction(POST_UPGRADE_REQUEST);\r\nexport const postUpgradeSuccess = createAction(POST_UPGRADE_SUCCESS);\r\nexport const postUpgradeFailed = createAction(POST_UPGRADE_FAILED);\r\nexport const putRequest = createAction(PUT_REQUEST);\r\nexport const putSuccess = createAction(PUT_SUCCESS);\r\nexport const putFailed = createAction(PUT_FAILED);\r\nexport const deleteRequest = createAction(DELETE_REQUEST);\r\nexport const deleteSuccess = createAction(DELETE_SUCCESS);\r\nexport const deleteFailed = createAction(DELETE_FAILED);\r\nexport const inputChanged = createAction(INPUT_CHANGED);\r\nexport const resetForm = createAction(RESET_FORM);\r\nexport const openNew = createAction(OPEN_NEW);\r\nexport const openEdit = createAction(OPEN_EDIT);\r\nexport const openUpgrade = createAction(OPEN_UPGRADE);\r\nexport const stepNextRequest = createAction(STEP_NEXT_REQUEST);\r\nexport const stepNext = createAction(STEP_NEXT);\r\nexport const stepBack = createAction(STEP_BACK);\r\nexport const stepReset = createAction(STEP_RESET);\r\nexport const backToList = createAction(BACK_TO_LIST);\r\nexport const fileSelected = createAction(FILE_SELECTED);\r\nexport const fileSelectedSuccess = createAction(FILE_SELECTED_SUCCESS);\r\nexport const fileSelectedFailed = createAction(FILE_SELECTED_FAILED);\r\nexport const changeLogFileSelected = createAction(CHANGE_LOG_FILE_SELECTED);\r\nexport const changeLogFileSuccess = createAction(CHANGE_LOG_FILE_SUCCESS);\r\nexport const changeLogFileFailed = createAction(CHANGE_LOG_FILE_FAILED);\r\nexport const serialChanged = createAction(SERIAL_CHANGED);\r\nexport const pastSerialChanged = createAction(PAST_SERIAL_CHANGED);\r\nexport const categoriesSelected = createAction(CATEGORIES_SELECTED);\r\nexport const modelsSelected = createAction(MODELS_SELECTED);\r\nexport const countriesSelected = createAction(COUNTRIES_SELECTED);\r\nexport const resetDoc = createAction(RESET_CATALOG);\r\nexport const prepareUpgrade = createAction(PREPARE_UPGRADE);\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n doc: action.payload.doc,\r\n new_serials: [],\r\n serials: action.payload.serials,\r\n models: action.payload.models,\r\n countries: action.payload.countries,\r\n categories: action.payload.categories,\r\n isSerialEditable: false, //for edit\r\n editable_max_version: action.payload.editable_max_version,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true\r\n }\r\n },\r\n [UPLOAD_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_NEW_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_UPGRADE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [PUT_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n }\r\n },\r\n [DELETE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [OPEN_NEW]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.NEW,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_EDIT]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.EDIT,\r\n isSerialEditable: false,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_UPGRADE]: (state, action) => {\r\n return {\r\n ...initialState,\r\n upgradeTargetId: action.payload,\r\n formType: formTypes.UPGRADE,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [RESET_FORM]: (state, action) => {\r\n return initialState\r\n },\r\n [STEP_NEXT]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep + 1\r\n }\r\n },\r\n [STEP_BACK]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep - 1\r\n }\r\n },\r\n [STEP_RESET]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: 0\r\n }\r\n },\r\n [INPUT_CHANGED]: (state, action) => {\r\n return {\r\n ...state,\r\n doc: {\r\n ...state.doc,\r\n [action.payload.key]: action.payload.value,\r\n }\r\n }\r\n },\r\n [SERIAL_CHANGED]: (state, action) => {\r\n const { modelId, key, value } = action.payload;\r\n const maxVersion = Math.max(...state.serials.map(m=>getRelativeVer(m.version)));\r\n return {\r\n ...state,\r\n new_serials: state.new_serials.map(data => {\r\n if(data.model_id === modelId){\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data;\r\n }),\r\n serials: state.serials.map(data => {\r\n if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial != value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: value-1,\r\n }\r\n }else if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial == value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: '99999'\r\n }\r\n }\r\n return data;\r\n }),\r\n }\r\n },\r\n [PAST_SERIAL_CHANGED]: (state, action) => {\r\n const { docId, modelId, key, value } = action.payload;\r\n return {\r\n ...state,\r\n serials: state.serials.map(data => {\r\n if(data.doc_id === docId && data.model_id === modelId) {\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data\r\n }),\r\n }\r\n },\r\n [FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [FILE_SELECTED_SUCCESS]: (state, action) => {\r\n const file = action.payload;\r\n const fileName = file.name;\r\n\r\n let fileType = null;\r\n let controlNumber = '';\r\n let compiler = '';\r\n let declaration_date = null;\r\n\r\n //check file type\r\n let fileNameSplit = fileName.split(\"_\");\r\n controlNumber = `${fileNameSplit[0]}_${fileNameSplit[1]}`;\r\n\r\n if(fileNameSplit[1].startsWith('EU')) {\r\n fileType = fileTypes.EU;\r\n }\r\n else if(fileNameSplit[1].startsWith('UK')) {\r\n fileType = fileTypes.UK;\r\n compiler = 'Kyoeisha Co., Ltd.';\r\n }\r\n else if(fileNameSplit[1].startsWith('US')) {\r\n fileType = fileTypes.US\r\n controlNumber = fileName.replace(/.pdf/g, '');\r\n compiler = 'N/A'\r\n\r\n //宣言日のセット\r\n if(fileNameSplit.length == 4 && !!fileNameSplit[3] && fileNameSplit[3].length == 8) {\r\n try {\r\n let year = fileNameSplit[3].replace(/.pdf/g, '');\r\n declaration_date = `${year}-01-01`;\r\n }\r\n catch {\r\n declaration_date = null;\r\n }\r\n }\r\n }\r\n\r\n if(fileType==null) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n doc: {\r\n ...state.doc,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n }\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: file,\r\n doc: {\r\n ...state.doc,\r\n file_name: fileName,\r\n file_type: fileType,\r\n title_ja: fileTitle[fileType].title_ja,\r\n title_en: fileTitle[fileType].title_en,\r\n control_number: controlNumber,\r\n compiler: compiler,\r\n declaration_date: declaration_date\r\n }\r\n }\r\n },\r\n [FILE_SELECTED_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n doc: {\r\n ...state.doc,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SUCCESS]: (state, action) => {\r\n const zipFile = action.payload;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zipFile: zipFile,\r\n doc: {\r\n ...state.doc,\r\n zip_file_name: zipFile.name,\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n zipFile: null,\r\n doc: {\r\n ...state.doc,\r\n zip_file_name: '',\r\n }\r\n }\r\n },\r\n [CATEGORIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n categories: action.payload,\r\n }\r\n },\r\n [MODELS_SELECTED]: (state, action) => {\r\n const model_ids = action.payload || [];\r\n //編集でない場合\r\n if (state.formType !== formTypes.EDIT) {\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map(id => {\r\n return {\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n } else {\r\n //編集の場合\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map(id => {\r\n //同じ機種IDのものがすでにあればそのserialデータを利用する\r\n let serial_id = state.serials.findIndex(x => x.model_id == id);\r\n if (serial_id !== -1) {\r\n return state.serials[serial_id];\r\n }\r\n else {\r\n return {\r\n doc_id: state.doc.id,\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n }\r\n }).sort((a, b) => b.model_id - a.model_id )\r\n };\r\n }\r\n },\r\n [COUNTRIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n countries: action.payload\r\n }\r\n },\r\n [RESET_CATALOG]: (state, action) => {\r\n return {\r\n ...state,\r\n doc: initialState.doc,\r\n }\r\n },\r\n [PREPARE_UPGRADE]: (state, action) => {\r\n return {\r\n ...state,\r\n doc: {\r\n ...state.doc,\r\n file_name: '',\r\n change_log_file_name: '',\r\n file_type: null,\r\n title_ja: '',\r\n title_en: '',\r\n version: null,\r\n }\r\n }\r\n },\r\n},initialState);\r\n\r\n\r\n// Selectors\r\n//全カテゴリとモデルの取得\r\nconst getCategories = state => state.categories.data;\r\nconst getModels = state => state.models.data;\r\n\r\n//選択中カテゴリとモデルの取得\r\nconst getSelectedCategories = state => state.docForm.categories;\r\nconst getSelectedModels = state => state.docForm.models;\r\n\r\n//マニュアルフォームデータ取得\r\nconst getDocForm = state => state.docForm;\r\n\r\n//新規POST用データの取得\r\nconst getPostNewData = state => {\r\n return {\r\n doc: state.docForm.doc,\r\n categories: state.docForm.categories.map(item => { return { code: item}}),\r\n countries: state.docForm.countries.map(item => {return {code: item}}),\r\n models: state.docForm.models,\r\n new_serials: state.docForm.new_serials,\r\n serials: state.docForm.serials,\r\n }\r\n};\r\n//アップグレード用データの取得\r\nconst getPostUpgradeData = state => {\r\n return {\r\n doc: state.docForm.doc,\r\n categories: state.docForm.categories.map(item => { return { code: item}}),\r\n countries: state.docForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.docForm.new_serials,\r\n serials: state.docForm.serials,\r\n }\r\n}\r\n//更新用データの取得\r\nconst getPutData = state => {\r\n return {\r\n doc: state.docForm.doc,\r\n categories: state.docForm.categories.map(item => {return {code: item}}),\r\n countries: state.docForm.countries.map(item => {return {code: item}}),\r\n models: state.docForm.models,\r\n new_serials: state.docForm.new_serials,\r\n serials: state.docForm.serials,\r\n }\r\n}\r\n//マニュアルデータ取得\r\nconst getDoc = state => state.docForm.doc;\r\n//ファイルデータ取得\r\nconst getFile = state => state.docForm.file;\r\n//改訂履歴ファイルデータ取得\r\nconst getZipFile = state => state.docForm.zipFile;\r\n//フォームタイプ取得\r\nconst getFormType = state => state.docForm.formType;\r\n//アップグレード対象ID取得\r\nconst getUpgradeTargetId = state => state.docForm.upgradeTargetId;\r\n//編集可能フラグの取得\r\nconst getIsSerialEditable = state => state.isSerialEditable;\r\n\r\n// Sagas\r\n\r\nfunction* handlePutSuccess(context) {\r\n while(true){\r\n yield take(PUT_SUCCESS);\r\n yield call(context.history.push, 'doc_list');\r\n }\r\n}\r\n\r\nfunction* handlePostNewSuccess(context) {\r\n while(true){\r\n yield take(POST_NEW_SUCCESS);\r\n yield call(context.history.push, 'doc_list');\r\n }\r\n}\r\nfunction* handlePostUpgradeSuccess(context) {\r\n while(true){\r\n yield take(POST_UPGRADE_SUCCESS);\r\n yield call(context.history.push, 'doc_list');\r\n }\r\n}\r\n\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedFile(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const doc = yield select(getDoc);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === doc.file_name) {\r\n //バリデーションを行わない\r\n yield put(fileSelectedSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(fileSelectedSuccess(file));\r\n }\r\n else {\r\n yield put(fileSelectedFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedFileFailed(context) {\r\n while(true){\r\n yield take(FILE_SELECTED_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n//ファイル選択成功アクションを待ち受ける\r\nfunction* handleSelectedFileSuccess(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED_SUCCESS);\r\n const file = action.payload;\r\n const fileName = file.name;\r\n //const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n const modelName = fileName.split(\"_\")[0];\r\n\r\n const formType = yield select(getFormType);\r\n const doc = yield select(getDoc);\r\n //マニュアルが編集時かつ同一ファイル名の場合はカテゴリ変更しない\r\n if(formType === formTypes.EDIT \r\n && doc.file_name == fileName){\r\n return;\r\n }\r\n\r\n var category = '';\r\n const categories = yield select(getCategories) || [];\r\n categories.some( x => {\r\n if(modelName.startsWith(x.category_short_name)){\r\n category=x.id; //既存DBの構造上idではなくカテゴリ名を渡す\r\n return true;\r\n }\r\n });\r\n if (category) {\r\n yield put(categoriesSelected([category]))\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedZipFile(context) {\r\n while(true){\r\n const action = yield take(CHANGE_LOG_FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const doc = yield select(getDoc);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === doc.zip_file_name) {\r\n //バリデーションを行わない\r\n yield put(changeLogFileSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(changeLogFileSuccess(file));\r\n }\r\n else {\r\n yield put(changeLogFileFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedZipFileFailed(context) {\r\n while(true){\r\n yield take(CHANGE_LOG_FILE_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n\r\n//宣言書データ取得アクションを待ち受ける\r\nfunction* handleFetchDoc(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchDoc, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'))\r\n }\r\n }\r\n}\r\n\r\n//宣言書データ取得成功を待ち受ける\r\nfunction* handleFetchSuccess(context) {\r\n while(true) {\r\n const action = yield take(FETCH_SUCCESS);\r\n const formType = yield select(getFormType);\r\n\r\n if(formType===formTypes.UPGRADE){\r\n yield put(prepareUpgrade());\r\n }\r\n const categories = yield select(getSelectedCategories);\r\n const models = yield select(getSelectedModels);\r\n yield put(modelsSelected(models));\r\n yield put(categoriesSelected(categories))\r\n }\r\n}\r\n\r\n//宣言書更新アクションを待ち受ける\r\nfunction* handlePutDoc(context) {\r\n while(true) {\r\n const action = yield take(PUT_REQUEST);\r\n const payload = yield call(putDoc,\r\n action.payload.file,\r\n action.payload.putData,\r\n action.payload.zipFile,\r\n );\r\n if(payload) {\r\n yield put(putSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('put_success')}\r\n ));\r\n } else {\r\n yield put(putFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('put_failed')}\r\n ));\r\n yield call(context.history.push, 'doc_list');\r\n }\r\n }\r\n}\r\n\r\n\r\n//新規登録アクションを待ち受ける\r\nfunction* handlePostNewDoc(context) {\r\n while(true){\r\n const action = yield take(POST_NEW_REQUEST);\r\n const payload = yield call(postNewDoc,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.zipFile);\r\n if(payload) {\r\n yield put(postNewSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_new_success')}\r\n ));\r\n } else {\r\n yield put(postNewFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_new_failed')}\r\n ));\r\n yield call(context.history.push, 'doc_list');\r\n }\r\n }\r\n}\r\n\r\n//フォーム(新規)表示アクションを待ち受ける\r\nfunction* handleOpenNewForm(context) {\r\n while(true){\r\n yield take(OPEN_NEW);\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'doc');\r\n }\r\n}\r\n\r\n//フォーム(アップグレード)表示アクションを待ち受ける\r\nfunction* handleOpenUpgradeForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_UPGRADE);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'doc');\r\n }\r\n}\r\n\r\n//フォーム(編集)表示アクションを待ち受ける\r\nfunction* handleOpenEditForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_EDIT);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'doc');\r\n }\r\n}\r\n\r\n\r\n//リストへ戻るためのアクションを待ち受ける\r\nfunction* handleBackToList(context) {\r\n while(true){\r\n yield take(BACK_TO_LIST);\r\n const confirmChannel = channel()\r\n\r\n yield put(confirmModule.showConfirm({\r\n title: t('confirm'),\r\n content: t('back_to_list_confirm'),\r\n actions: {\r\n ok: () => {\r\n context.history.push('doc_list');\r\n }\r\n }\r\n }))\r\n }\r\n}\r\n\r\n\r\n//マニュアル削除のアクションを待ち受ける\r\nfunction* handleDeleteDoc(context) {\r\n while(true) {\r\n const action = yield take(DELETE_REQUEST)\r\n const payload = yield call(deleteDoc, action.payload)\r\n if(payload) {\r\n yield put(deleteSuccess());\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('delete_doc_success')}\r\n ));\r\n } else {\r\n yield put(deleteFailed());\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('delete_doc_failed')}\r\n ));\r\n }\r\n context.history.push('doc_list');\r\n }\r\n}\r\n\r\n\r\n//カテゴリ選択のアクションを待ち受ける\r\nfunction * handleCategoriesSelected(context) {\r\n while(true) {\r\n const action = yield take(CATEGORIES_SELECTED);\r\n\r\n //カテゴリ選択で紐づかなくなった機種を外す\r\n const categories = yield select(getCategories);\r\n const selectedCategories = yield select(getSelectedCategories);\r\n const selectedModels = yield select(getSelectedModels);\r\n const models = yield select(getModels);\r\n\r\n const formType = yield select(getFormType);\r\n\r\n if( categories && selectedCategories && selectedModels && models) {\r\n const _selectedCategories = categories.filter(x => selectedCategories.includes(x.id));\r\n const _selectedModels = models.filter(x => selectedModels.includes(x.id) &&\r\n _selectedCategories.map(s => s.category_short_name).includes(x.category_code));\r\n yield put(modelsSelected(_selectedModels.map(x => { return x.id })));\r\n }\r\n\r\n // カテゴリに応じた機種一覧を取得する\r\n yield put(modelsAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\n//機種選択のアクションを待ち受ける\r\nfunction * handleModelsSelected(context) {\r\n while(true) {\r\n const action = yield take(MODELS_SELECTED);\r\n // 機種に応じた国一覧を取得する\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\nconst validateString = (str, maxLen, minLen=0) => {\r\n if (str && minLen <= str.length && str.length <= maxLen) {\r\n return true;\r\n }else {\r\n return false;\r\n }\r\n}\r\n\r\nconst validateNumber = (num, maxNum, minNum=0) => {\r\n if (num && minNum <= num && num <= maxNum ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * バージョン(xx.xx.xx)を比較可能な値に変換する\r\n */\r\nconst getRelativeVer = (x) => {\r\n const xSplit = String(x).split('.');\r\n const x1 = Number(xSplit[0]) || 0;\r\n const x2 = Number(xSplit[1]) || 0;\r\n const x3 = Number(xSplit[2]) || 0;\r\n return x1*100+x2*10+x3;\r\n}\r\n\r\n\r\n//各ステップの次へボタン押下のリクエストを待ち受ける(バリデーション)\r\n//[参考]複雑なフォームでなければ、Redux-FormやFormikを利用してバリデーションする\r\nfunction * handleStepNextRequest(context) {\r\n while (true) {\r\n const action = yield take(STEP_NEXT_REQUEST);\r\n const formType = yield select(getFormType);\r\n const docForm = yield select(getDocForm);\r\n const currentStep = docForm.activeStep;\r\n switch (currentStep) {\r\n case 0:\r\n if (docForm.doc.file_name !== '' &&\r\n docForm.doc.file_type !== '' ){\r\n yield put(stepNext())\r\n }else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_input_error')}\r\n ));\r\n }\r\n break;\r\n case 1:\r\n if (docForm.categories.length == 0 || docForm.models.length == 0 ) {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('category_model_input_error')}\r\n ));\r\n }\r\n else {\r\n yield put(stepNext())\r\n }\r\n break;\r\n case 2:\r\n if (docForm.serials.every(item => item.start_serial!==null && item.end_serial!==null)\r\n && docForm.new_serials.every(item => item.start_serial!==null && item.end_serial!==null)){\r\n if(docForm.serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )\r\n &&\r\n docForm.new_serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )) {\r\n yield put(stepNext())\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_range_error')}\r\n ));\r\n }\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_input_error')}\r\n ));\r\n }\r\n break;\r\n case 3:\r\n /* 国として(共栄社)のみとしたい場合は空となるため、バリデーションを外す\r\n if(docForm.countries.length !== 0) { //ページ数のバリデーションも後で追加\r\n */\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n switch (docForm.formType) {\r\n case formTypes.NEW:\r\n const file = yield select(getFile);\r\n const zipFile = yield select(getZipFile);\r\n const postData = yield select(getPostNewData);\r\n yield put(postNewRequest({file: file, postData: postData, zipFile: zipFile }));\r\n break;\r\n case formTypes.UPGRADE:\r\n yield put(postUpgradeRequest({\r\n upgradeTargetId: yield select(getUpgradeTargetId),\r\n file: yield select(getFile),\r\n postData: yield select(getPostUpgradeData),\r\n zipFile: yield select(getZipFile)\r\n }));\r\n break;\r\n case formTypes.EDIT:\r\n yield put(putRequest({\r\n file: yield select(getFile),\r\n putData: yield select(getPutData),\r\n zipFile: yield select(getZipFile)\r\n }));\r\n default:\r\n break;\r\n }\r\n /*\r\n } else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('country_input_error')}\r\n ));\r\n }\r\n */\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handlePutSuccess,\r\n handlePostNewSuccess,\r\n handlePostUpgradeSuccess,\r\n handleSelectedFile,\r\n handleSelectedFileSuccess,\r\n handleSelectedFileFailed,\r\n handleSelectedZipFile,\r\n handleSelectedZipFileFailed,\r\n handleFetchDoc,\r\n handleFetchSuccess,\r\n handleOpenNewForm,\r\n handleOpenEditForm,\r\n handleOpenUpgradeForm,\r\n handleBackToList,\r\n handleModelsSelected,\r\n handleCategoriesSelected,\r\n handleStepNextRequest,\r\n handlePostNewDoc,\r\n handlePutDoc,\r\n handleDeleteDoc,\r\n];\r\n","import axios from 'axios'\r\nimport http from './http'\r\nimport {HOST} from '../../constants/api';\r\n\r\n\r\n//ファイル名用の日付文字列取得\r\nexport const getFormattedTime = () => {\r\n var today = new Date();\r\n var y = today.getFullYear();\r\n // JavaScript months are 0-based.\r\n var m = today.getMonth() + 1;\r\n var d = today.getDate();\r\n var h = today.getHours();\r\n var mi = today.getMinutes();\r\n var s = today.getSeconds();\r\n return y + \"-\" + m + \"-\" + d + \"-\" + h + \"-\" + mi + \"-\" + s;\r\n}\r\n\r\n/**\r\n * ファイルの存在確認\r\n * @param {*} filename ファイル名\r\n * @returns 有無\r\n */\r\nexport const checkFile = (filename) => {\r\n return http.get('/api/files/is_valid/' + filename)\r\n .then( res => {\r\n return 'ok';\r\n })\r\n .catch( res => {\r\n return null;\r\n })\r\n}\r\n\r\n\r\n//国一覧取得\r\nexport const fetchCountries = (selectedModels) => {\r\n var queryString = '?';\r\n if(selectedModels){\r\n selectedModels.forEach(item => {\r\n queryString += \"model=\" + item + \"&\";\r\n })\r\n }\r\n return http.get(`api/countries/${queryString}`)\r\n .then( res => {\r\n return res.data.map(item => {\r\n return {\r\n id: item.code,\r\n country_code: item.iso_code,\r\n country_name: item.country_name_jp\r\n }\r\n })\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n\r\n//カテゴリ一覧取得\r\nexport const fetchCategories = () => {\r\n return http.get('api/categories')\r\n .then( res => {\r\n return res.data.map(item => {\r\n return {\r\n id: item.code,\r\n category_short_name: item.category_code,\r\n category_name: item.category_name,\r\n }\r\n })\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n//機種一覧取得\r\nexport const fetchModels = (selectedCategories) => {\r\n var queryString = '?';\r\n if(selectedCategories){\r\n selectedCategories.forEach(item => {\r\n queryString += \"category=\" + item + \"&\";\r\n })\r\n }\r\n return http.get(`/api/models/${queryString}`)\r\n .then( res => {\r\n return res.data.map(item => {\r\n return {\r\n id: item.code,\r\n category_code: item.category_code,\r\n model_code: item.model_code\r\n }\r\n })\r\n })\r\n .catch( err => {\r\n return null\r\n })\r\n}\r\n\r\n\r\n//ファイル保存\r\nexport const saveFile = (file) => {\r\n return http.get(`/api/files/upload_url/${file.name}?content_type=${file.type}`)\r\n .then(res => {\r\n const options = {\r\n headers: {\r\n 'Content-Type': file.type\r\n }\r\n };\r\n return axios.put(res.data.url, file, options)\r\n })\r\n}\r\n\r\n\r\n//ファイルダウンロード\r\nexport const downloadFile = (file_name) => {\r\n return http.get(`/api/files/download_url/${file_name}`)\r\n .then(res => {\r\n return axios({\r\n url: res.data.url,\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n })\r\n .then((response) => {\r\n if (window.navigator.msSaveBlob) {\r\n // for IE\r\n window.navigator.msSaveBlob(new Blob([response.data]), file_name);\r\n }\r\n else {\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', file_name);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n })\r\n .catch( res => {\r\n return null;\r\n })\r\n })\r\n .catch( res => {\r\n return null;\r\n })\r\n}\r\n\r\n\r\n//自動ログイン\r\nexport const getAccessToken = () => {\r\n return http.get('/api/auth/token')\r\n .then(({data}) => {\r\n localStorage.setItem('accessToken', data.access_token);\r\n localStorage.setItem('refreshToken', data.refresh_token);\r\n return data.account;\r\n })\r\n .catch((err) => {\r\n return null;\r\n })\r\n}\r\n\r\n//管理者用自動ログイン\r\nexport const getAdminAccessToken = (cookie) => {\r\n return http.get(`/api/auth/token/admin/${cookie}`)\r\n .then(({data}) => {\r\n localStorage.setItem('accessToken', data.access_token);\r\n localStorage.setItem('refreshToken', data.refresh_token);\r\n return data.account;\r\n })\r\n .catch((err) => {\r\n return null;\r\n })\r\n}\r\n\r\n//ログイン\r\nexport const login = ({username, password}) => {\r\n return http.post('/api/auth/login',\r\n {\r\n 'username': username,\r\n 'password': password\r\n })\r\n .then(({data}) => {\r\n localStorage.setItem('accessToken', data.access_token);\r\n localStorage.setItem('refreshToken', data.refresh_token);\r\n return data.account;\r\n })\r\n .catch((err) => {\r\n return null;\r\n })\r\n}\r\n\r\n//管理者ログイン\r\nexport const adminLogin = ({username, password}) => {\r\n return http.post('/api/auth/login/admin',\r\n {\r\n 'username': username,\r\n 'password': password\r\n })\r\n .then(({data}) => {\r\n localStorage.setItem('accessToken', data.access_token);\r\n localStorage.setItem('refreshToken', data.refresh_token);\r\n return data.account;\r\n })\r\n .catch((err) => {\r\n return null;\r\n })\r\n}\r\n\r\n//リフレッシュトークンからのログイン\r\nexport const refreshLogin = () => {\r\n const refreshToken = localStorage.getItem('refreshToken');\r\n if(refreshToken){\r\n const header = {'Authorization': `Bearer ${refreshToken}`};\r\n return axios.post(`${HOST}/api/auth/refresh`, '', { headers: header })\r\n .then(({data}) => {\r\n localStorage.setItem('accessToken', data.access_token);\r\n localStorage.setItem('refreshToken', data.refresh_token);\r\n return data.account;\r\n })\r\n .catch((err) => {\r\n return null;\r\n })\r\n }\r\n return null;\r\n}\r\n\r\nexport const logoutOnlineGallery = () => {\r\n return axios.get('https://baroness-international.com/Login/logout')\r\n .then((data) => {\r\n return 'logout success';\r\n })\r\n .catch((err) => {\r\n return null;\r\n })\r\n}","/*\n * API関連処理\n * 時間があれば、ファイル分割する\n * 時間があれば、失敗時はnullではなくエラーを返してメッセージ表示させる\n */\nimport http from './http'\nimport { getFormattedTime, saveFile } from './common';\n\nconst URI = \"/api/engines\";\nconst KEY = \"engine\";\n\nexport const initialState = {\n page: 0,\n per_page: 10,\n model_name: '',\n serial: '',\n version: '',\n file_types: {\n CA: true\n },\n sort: {\n key: '',\n order: ''\n },\n categories: [],\n}\n\n//(検索・CSV出力用) クエリ文字列の作成\n//Axiosの場合パラーメータとして直接渡せるらしいので、時間があれば変更する\nexport const createQueryString = (queries) => {\n const {page, per_page, engine_model_name, model_name, serial, version, destination, language, file_types, only_latest, sort, categories, engine_makers, lang} = queries;\n\n var queryString = \"?\";\n queryString += \"page=\" + String(page);\n queryString += \"&per_page=\" + per_page;\n if(engine_model_name) {\n queryString += \"&engine_model_name=\" + engine_model_name;\n }\n if(model_name){\n queryString += \"&model_name=\" + model_name;\n }\n if(serial){\n queryString += \"&serial=\" + serial;\n }\n if(version){\n queryString += \"&version=\" + version;\n }\n if(destination){\n queryString += \"&destination=\" + destination;\n }\n if(language){\n queryString += \"&language=\" + language;\n }\n if (file_types.UM){\n queryString += \"&file_type=UM\";\n }\n if (file_types.PC){\n queryString += \"&file_type=PC\";\n }\n if (file_types.PU){\n queryString += \"&file_type=PU\";\n }\n if (file_types.SM){\n queryString += \"&file_type=SM\";\n }\n if (sort && sort.key && sort.order) {\n queryString += \"&sort=\" + sort.key;\n queryString += \"&order=\" + sort.order;\n }\n if(categories) {\n categories.forEach(x => {\n queryString += \"&categories=\" + x;\n }); \n }\n if(engine_makers) {\n engine_makers.forEach(x => {\n queryString += \"&engine_makers=\" + x;\n })\n }\n\n queryString += `&only_latest=${only_latest}`;\n if(lang) {\n queryString += `&lang=${lang}`;\n }\n return queryString;\n}\n\n\n//一覧検索\nexport const searchList = (queries=initialState) => {\n return http.get(URI+createQueryString(queries))\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//CSV出力\nexport const exportCsv = (queries=initialState) => {\n return http.get(`${URI}/csv`+createQueryString(queries),\n { responseType:'blob', dataType:'binary'})\n .then((response) => {\n const fileName = `${KEY}_${getFormattedTime()}.csv`;\n\n if (window.navigator.msSaveBlob) {\n // for IE\n window.navigator.msSaveBlob(new Blob([response.data]), fileName);\n }\n else {\n const url = window.URL.createObjectURL(new Blob([response.data], {type: `text/csv`}));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', fileName); //or any other extension\n document.body.appendChild(link);\n link.click();\n }\n })\n .catch( res => {\n return null;\n })\n .catch( err => {\n return null\n })\n}\n\n/**CSVアップロード */\nexport const uploadCsv = (file) => {\n const data = new FormData();\n data.append('csvfile', file)\n return http.post(`${URI}/csv/upload`, data)\n .then( res => {\n return res;\n })\n .catch((error) => {\n if (error.response) {\n return error.response;\n } \n else {\n return null;\n }\n });\n}\n\n//データ取得\nexport const fetchItem = (id) => {\n return http.get(`${URI}/${id}`)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//データ削除\nexport const deleteItem = (id) => {\n return http.delete(`${URI}/${id}`)\n .then( res => {\n return `Success delete the file ${id}`\n })\n .catch( err => {\n return null;\n })\n}\n\n//新規登録\nexport const postNewItem = (file, postData, changeLogFile) => {\n //IDは含めない\n delete postData[KEY].id;\n return saveFile(file)\n .then(res => {\n if(changeLogFile) {\n saveFile(changeLogFile);\n }else{\n delete postData[KEY].change_log_file_name;\n }\n })\n .then( resp => {\n return http.post(URI, postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n\n\n//データ更新\nexport const putItem = (file, putData, changeLogFile) => {\n if (file){\n saveFile(file);\n }\n if (changeLogFile){\n saveFile(changeLogFile);\n }\n return http.put(`${URI}/${putData[KEY].id}`, putData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//アップグレード\nexport const postUpgradeItem = (upgradeTargetId, file, postData, changeLogFile) => {\n //IDは含めない\n delete postData[KEY].id;\n return saveFile(file)\n .then(res => {\n if(changeLogFile) {\n saveFile(changeLogFile);\n }else{\n delete postData[KEY].change_log_file_name;\n }\n })\n .then( resp => {\n return http.post(`${URI}/${upgradeTargetId}/upgrade`, postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n","// Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport * as messageModule from '../message';\nimport {t} from 'i18next';\n\nimport { searchList, exportCsv, uploadCsv } from '../api/engine';\nimport { downloadFile } from '../api/common';\nimport * as fileTypes from '../../constants/fileTypes';\n\n// Actions\nconst MENU_SELECTED = 'bmm/engineList/MENU_SELECTED';\nconst RESET_ALL = 'bmm/engineList/RESET_ALL';\nconst RESET_QUERIES = 'bmm/engineList/RESET_QUERIES';\nconst SEARCH_REQUEST = 'bmm/engineList/SEARCH_REQUEST';\nconst SEARCH_SUCCESS = 'bmm/engineList/SEARCH_SUCCESS';\nconst SEARCH_FAILURE = 'bmm/engineList/SEARCH_FAILURE';\nconst PAGING_REQUEST = 'bmm/engineList/PAGING_REQUEST';\nconst PAGING_SUCCESS = 'bmm/engineList/PAGING_SUCCESS';\nconst PAGING_FAILURE = 'bmm/engineList/PAGING_FAILURE';\nconst SET_UPLOAD_FILE = 'bmm/engineList/SET_UPLOAD_FILE';\nconst UPLOAD_CSV_REQUEST = 'bmm/engineList/UPLOAD_CSV_REQUEST';\nconst UPLOAD_CSV_SUCCESS = 'bmm/engineList/UPLOAD_CSV_SUCCESS';\nconst UPLOAD_CSV_FAILED = 'bmm/engineList/UPLOAD_CSV_FAILED';\nconst EXPORT_CSV_REQUEST = 'bmm/engineList/EXPORT_CSV_REQUEST';\nconst EXPORT_CSV_SUCCESS = 'bmm/engineList/EXPORT_CSV_SUCCESS';\nconst EXPORT_CSV_FAILED = 'bmm/engineList/EXPORT_CSV_FAILED';\nconst INPUT_CHANGED = 'bmm/engineList/INPUT_CHANGED';\nconst FILE_TYPE_CHANGED = 'bmm/engineList/FILE_TYPE_CHANGED';\nconst PAGE_CHANGED = 'bmm/engineList/PAGE_CHANGED';\nconst PER_PAGE_CHANGED = 'bmm/engineList/PER_PAGE_CHANGED';\nconst SORT_CHANGED = 'bmm/engineList/SORT_CHANGED';\nconst DOWNLOAD_REQUEST = 'bmm/engineList/DOWNLOAD_REQUEST';\nconst DOWNLOAD_SUCCESS = 'bmm/engineList/DOWNLOAD_SUCCESS';\nconst DOWNLOAD_FAILED = 'bmm/engineList/DOWNLOAD_FAILED';\n\n\n// Action Creators\nexport const menuSelected = createAction(MENU_SELECTED);\nexport const resetAll = createAction(RESET_ALL);\nexport const resetQueries = createAction(RESET_QUERIES);\nexport const searchRequest = createAction(SEARCH_REQUEST);\nexport const searchSuccess = createAction(SEARCH_SUCCESS);\nexport const searchFailure = createAction(SEARCH_FAILURE);\nexport const pagingRequest = createAction(PAGING_REQUEST);\nexport const pagingSuccess = createAction(PAGING_SUCCESS);\nexport const pagingFailure = createAction(PAGING_FAILURE);\nexport const setUploadFile = createAction(SET_UPLOAD_FILE);\nexport const uploadCsvRequest = createAction(UPLOAD_CSV_REQUEST);\nexport const uploadCsvSuccess = createAction(UPLOAD_CSV_SUCCESS);\nexport const uploadCsvFailed = createAction(UPLOAD_CSV_FAILED);\nexport const exportCsvRequest = createAction(EXPORT_CSV_REQUEST);\nexport const exportCsvSuccess = createAction(EXPORT_CSV_SUCCESS);\nexport const exportCsvFailed = createAction(EXPORT_CSV_FAILED);\nexport const inputChanged = createAction(INPUT_CHANGED);\nexport const fileTypeChanged = createAction(FILE_TYPE_CHANGED);\nexport const pageChanged = createAction(PAGE_CHANGED);\nexport const perPageChanged = createAction(PER_PAGE_CHANGED);\nexport const sortChanged = createAction(SORT_CHANGED);\nexport const downloadRequest = createAction(DOWNLOAD_REQUEST);\nexport const downloadSuccess = createAction(DOWNLOAD_SUCCESS);\nexport const downloadFailed = createAction(DOWNLOAD_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: [],\n queries: {\n page: 1,\n per_page: 10,\n engine_model_name: '',\n model_name: '',\n serial: '',\n version: '',\n destination: '',\n language: '',\n file_types: {\n UM: true,\n PC: true,\n PU: true,\n SM: true\n },\n sort: {\n key: '',\n order: ''\n },\n only_latest: false,\n categories: [],\n engine_makers: [],\n },\n upload_file: null,\n};\n\n\n// Reducer\nexport default handleActions({\n [MENU_SELECTED]: (state, action) => {\n const type = action.payload.type;\n switch(type){\n case fileTypes.UM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: false,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.PC:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: true,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.SM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: false,\n PU: false,\n SM: true\n }}}\n break;\n default:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: true,\n PU: true,\n SM: true\n }}}\n break;\n }\n },\n [RESET_ALL]: (state, action) => {\n return initialState;\n },\n [RESET_QUERIES]: (state, action) => {\n return {\n ...state,\n queries: initialState.queries\n }\n },\n [SEARCH_REQUEST]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1\n },\n isLoading: true\n }\n },\n [SEARCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [SEARCH_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [PAGING_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [PAGING_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [PAGING_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [SET_UPLOAD_FILE]: (state, action) => {\n return {\n ...state,\n upload_file: action.payload\n }\n },\n [UPLOAD_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [UPLOAD_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [UPLOAD_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [EXPORT_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [EXPORT_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [EXPORT_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [INPUT_CHANGED]: (state, action) => {\n return {\n ...state,\n queries:{\n ...state.queries,\n [action.payload.key]: action.payload.value\n }\n }\n },\n [FILE_TYPE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n file_types:{\n ...state.queries.file_types,\n [action.payload.key]: action.payload.value\n }\n }\n }\n },\n [PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: action.payload,\n }\n }\n },\n [PER_PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1,\n per_page: action.payload,\n }\n }\n },\n [SORT_CHANGED]: (state, action) => {\n let _sort;\n if (state.queries.sort.key !== action.payload) {\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else{\n if(state.queries.sort.order === ''){\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else if(state.queries.sort.order === 'asc'){\n _sort = {\n key: action.payload,\n order: 'desc'\n }\n }\n else if(state.queries.sort.order === 'desc'){\n _sort = {\n key: '',\n order: ''\n }\n }\n }\n return {\n ...state,\n queries: {\n ...state.queries,\n sort: _sort\n }\n }\n },\n [DOWNLOAD_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [DOWNLOAD_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [DOWNLOAD_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n},initialState);\n\n// Selectors\nconst getQueries = state => state.engineList.queries;\nconst getUploadFile = state => state.engineList.upload_file;\nconst getLang = state => {\n return {\n lang: state.auth.language===\"en\" ? \"en-US\" : \"ja-JP\"\n }\n};\n\n// Sagas\nfunction* handleSearchEngineList(context) {\n while(true){\n const action = yield take(SEARCH_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchList, queries);\n if(payload) {\n yield put(searchSuccess(payload));\n } else {\n yield put(searchFailure('error'));\n }\n }\n}\n\nfunction* handlePagingEngineList(context) {\n while(true){\n const action = yield take(PAGING_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchList, queries);\n if(payload) {\n yield put(pagingSuccess(payload));\n } else {\n yield put(pagingFailure('error'));\n }\n }\n}\n\nfunction* handleUploadCsv(context) {\n while(true) {\n const action = yield take(UPLOAD_CSV_REQUEST);\n const uploadFile = yield select(getUploadFile);\n const payload = yield call(uploadCsv, uploadFile);\n if(!!payload && payload.status == 200) {\n yield put(uploadCsvSuccess(payload));\n yield put(messageModule.showMessage(\n {type: 'success', content: t('upload_countries_csv_success')}\n ));\n } else if (!!payload && payload.status >= 400) {\n yield put(uploadCsvFailed('error'));\n yield put(messageModule.showMessage(\n {type: 'error', content: t('file_format_is_different')}\n ));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: t('upload_countries_csv_failed')}\n ));\n }\n }\n}\n\nfunction* handleExportCsv(context){\n while(true){\n const action = yield take(EXPORT_CSV_REQUEST);\n const lang = yield select(getLang);\n const payload = yield call(exportCsv, {\n ...action.payload,\n ...lang\n });\n if(payload) {\n yield put(exportCsvSuccess(payload));\n }else{\n yield put(exportCsvFailed('error'));\n }\n }\n}\n\nfunction* handleMenuSelected(context){\n while(true){\n yield take(MENU_SELECTED);\n const queries = yield select(getQueries);\n yield call(context.history.push, '/engine_list');\n }\n}\n\nfunction* handlePageChanged(context) {\n while(true){\n yield take(PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(pagingRequest(queries));\n }\n}\n\nfunction* handlePerPageChanged(context) {\n while(true){\n yield take(PER_PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction * handleSortChanged(context) {\n while(true){\n yield take(SORT_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction* handleDownloadRequest(context) {\n while(true) {\n const action = yield take(DOWNLOAD_REQUEST);\n const payload = yield call(downloadFile, action.payload);\n if(payload) {\n yield put(downloadSuccess(payload));\n } else {\n yield put(downloadFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleSearchEngineList,\n handlePagingEngineList,\n handleMenuSelected,\n handlePageChanged,\n handlePerPageChanged,\n handleSortChanged,\n handleUploadCsv,\n handleDownloadRequest,\n handleExportCsv,\n];\n","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport { login, adminLogin, refreshLogin, getAccessToken, getAdminAccessToken } from '../api';\nimport i18next from 'i18next';\n\nimport * as engineListModule from './engineList';\nimport * as messageModule from '../message';\n//import { EU_COUNTRY_IDS, UK_COUNTRY_IDS, US_COUNTRY_IDS } from '../../constants/engineTypes';\n\n//Actions\nconst LOGIN_REQUEST = 'bmm/engineAuth/LOGIN_REQUEST';\nconst LOGIN_SUCCESS = 'bmm/engineAuth/LOGIN_SUCCESS';\nconst LOGIN_FAILED = 'bmm/engineAuth/LOGIN_FAILED';\nconst ADMIN_LOGIN_REQUEST = 'bmm/engineAuth/ADMIN_LOGIN_REQUEST';\nconst ADMIN_LOGIN_SUCCESS = 'bmm/engineAuth/ADMIN_LOGIN_SUCCESS';\nconst ADMIN_LOGIN_FAILED = 'bmm/engineAuth/ADMIN_LOGIN_FAILED';\nconst REFRESH_REQUEST = 'bmm/engineAuth/REFRESH_REQUEST';\nconst REFRESH_SUCCESS = 'bmm/engineAuth/REFRESH_SUCCESS';\nconst REFRESH_FAILED = 'bmm/engineAuth/REFRESH_FAILED';\nconst AUTO_LOGIN_REQUEST = 'bmm/engineAuth/AUTO_LOGIN_REQUEST';\nconst AUTO_LOGIN_SUCCESS = 'bmm/engineAuth/AUTO_LOGIN_SUCCESS';\nconst AUTO_LOGIN_FAILED = 'bmm/engineAuth/AUTO_LOGIN_FAILED';\nconst AUTO_LOGIN_STOPPED = 'bmm/engineAuth/AUTO_LOGIN_STOPPED';\nconst AUTO_ADMIN_LOGIN_REQUEST = 'bmm/engineAuth/AUTO_ADMIN_LOGIN_REQUEST';\nconst AUTO_ADMIN_LOGIN_SUCCESS = 'bmm/engineAuth/AUTO_ADMIN_LOGIN_SUCCESS';\nconst AUTO_ADMIN_LOGIN_FAILED = 'bmm/engineAuth/AUTO_ADMIN_LOGIN_FAILED';\nconst AUTO_ADMIN_LOGIN_STOPPED = 'bmm/engineAuth/AUTO_ADMIN_LOGIN_STOPPED';\nconst LOGOUT = 'bmm/engineAuth/LOGOUT';\nconst CHANGE_LANGUAGE = 'bmm/engineAuth/CHANGE_LANGUAGE';\nconst FORM_CHANGED = 'bmm/engineAuth/FORM_CHANGED';\n\n//Action Creators\nexport const loginRequest = createAction(LOGIN_REQUEST);\nexport const loginSuccess = createAction(LOGIN_SUCCESS);\nexport const loginFailed = createAction(LOGIN_FAILED);\nexport const adminLoginRequest = createAction(ADMIN_LOGIN_REQUEST);\nexport const adminLoginSuccess = createAction(ADMIN_LOGIN_SUCCESS);\nexport const adminLoginFailed = createAction(ADMIN_LOGIN_FAILED);\nexport const refreshRequest = createAction(REFRESH_REQUEST);\nexport const refreshSuccess = createAction(REFRESH_SUCCESS);\nexport const refreshFailed = createAction(REFRESH_FAILED);\nexport const autoLoginRequest = createAction(AUTO_LOGIN_REQUEST);\nexport const autoLoginSuccess = createAction(AUTO_LOGIN_SUCCESS);\nexport const autoLoginFailed = createAction(AUTO_LOGIN_FAILED);\nexport const autoLoginStopped = createAction(AUTO_LOGIN_STOPPED);\nexport const autoAdminLoginRequest = createAction(AUTO_ADMIN_LOGIN_REQUEST);\nexport const autoAdminLoginSuccess = createAction(AUTO_ADMIN_LOGIN_SUCCESS);\nexport const autoAdminLoginFailed = createAction(AUTO_ADMIN_LOGIN_FAILED);\nexport const autoAdminLoginStopped = createAction(AUTO_ADMIN_LOGIN_STOPPED);\nexport const logout = createAction(LOGOUT);\nexport const changeLanguage = createAction(CHANGE_LANGUAGE);\nexport const formChanged = createAction(FORM_CHANGED);\n\n//initialState\nconst initialState = {\n isLoading: false,\n isLoggedIn: false, //ログイン中かどうか\n account: {\n user_name: '',\n country_id: '', //国ID\n is_superuser: false, //管理者かどうか\n },\n language: '', //状態変化がないと画面更新が走らない\n form: {\n username: '',\n password: '',\n }\n}\n\nexport default handleActions({\n [LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [REFRESH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [REFRESH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [REFRESH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [AUTO_ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_ADMIN_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [LOGOUT]: (state, action) => {\n return initialState;\n },\n [CHANGE_LANGUAGE]: (state, action) => {\n i18next.changeLanguage(action.payload);\n return {\n ...state,\n language: action.payload,\n }\n },\n [FORM_CHANGED]: (state, action) => {\n return {\n ...state,\n form: {\n ...state.form,\n [action.payload.key]: action.payload.value,\n }\n }\n },\n},initialState);\n\n//Selectors\n\n//ログインフォームデータ取得\nconst getLoginForm = state => state.engineAuth.form;\nconst getIsLoggedIn = state => state.engineAuth.isLoggedIn;\nconst getIsSuperuser = state => state.engineAuth.account.is_superuser;\nconst getQueries = state => state.engineList.queries;\n\n//Sagas\nfunction *handleLoginRequest(context) {\n while(true){\n yield take(LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(login, loginForm);\n if(payload) {\n yield put(loginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(loginFailed());\n }\n }\n}\n\nfunction *handleLoginSuccess(context) {\n while(true){\n const action = yield take(LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'engine');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n yield setFileTypeByCountryId(account.country_id);\n\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/engine_list');\n }\n }\n}\n\nfunction *handleAdminLoginRequest(context) {\n while(true){\n yield take(ADMIN_LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(adminLogin, loginForm);\n if(payload) {\n yield put(adminLoginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(adminLoginFailed());\n }\n }\n}\n\nfunction *handleAdminLoginSuccess(context) {\n while(true){\n const action = yield take(ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'engine');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/engine_list');\n }\n }\n}\n\nfunction *handleRefreshRequest(context) {\n while(true){\n yield take(REFRESH_REQUEST);\n const payload = yield call(refreshLogin);\n if(payload) {\n yield put(refreshSuccess(payload));\n } else {\n yield put(loginFailed());\n yield call(context.history.push, '/engine_login');\n }\n }\n}\n\nfunction *handleRefreshSuccess(context) {\n while(true){\n const action = yield take(REFRESH_SUCCESS);\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n }\n}\n\nfunction *handleAutoLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoLoginStopped());\n }\n else {\n //yield put(engineListModule.menuSelected({type: action.payload}));\n const payload = yield call(getAccessToken);\n if(payload) {\n yield put(autoLoginSuccess(payload));\n } else {\n yield put(autoLoginFailed());\n yield call(context.history.push, '/engine_login');\n }\n }\n }\n}\n\nfunction *handleAutoLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'engine');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n yield setFileTypeByCountryId(account.country_id);\n\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(engineListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/engine_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\nfunction *handleAutoAdminLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoAdminLoginStopped());\n }\n else {\n const payload = yield call(getAdminAccessToken, action.payload);\n if(payload) {\n yield put(autoAdminLoginSuccess(payload));\n } else {\n yield put(autoAdminLoginFailed());\n yield call(context.history.push, '/engine_login/admin');\n }\n }\n }\n}\n\nfunction *handleAutoAdminLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'engine');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(engineListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/engine_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\n\nfunction *handleLogout(context) {\n while(true) {\n const action = yield take(LOGOUT);\n const isAdmin = action.payload;\n //ローカルストレージのToken削除\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n //オンラインギャラリーのCookie削除\n document.cookie = \"CAKEPHP=; path=/; max-age=0\";\n //yield put(changeLanguage(initialState.language));\n\n if(isAdmin) {\n yield call(context.history.push, '/engine_login/admin');\n }\n else {\n yield call(context.history.push, '/engine_login');\n }\n }\n}\n\n\n/**\n * ログインユーザーの国に応じてファイル種別の初期チェック状態を切り替える\n */\nfunction *setFileTypeByCountryId(countryId) {\n /*\n if (US_COUNTRY_IDS.includes(countryId)) {\n yield put(engineListModule.fileTypeChanged({key: \"US\", value: true}));\n yield put(engineListModule.fileTypeChanged({key: \"UK\", value: false}));\n yield put(engineListModule.fileTypeChanged({key: \"EU\", value: false}));\n }\n else if (UK_COUNTRY_IDS.includes(countryId)) {\n yield put(engineListModule.fileTypeChanged({key: \"US\", value: false}));\n yield put(engineListModule.fileTypeChanged({key: \"UK\", value: true}));\n yield put(engineListModule.fileTypeChanged({key: \"EU\", value: true}));\n }\n else if (EU_COUNTRY_IDS.includes(countryId)) {\n yield put(engineListModule.fileTypeChanged({key: \"US\", value: false}));\n yield put(engineListModule.fileTypeChanged({key: \"UK\", value: false}));\n yield put(engineListModule.fileTypeChanged({key: \"EU\", value: true}));\n }\n */\n}\n\n// Sagas\nexport const sagas = [\n handleLoginRequest,\n handleLoginSuccess,\n handleAdminLoginRequest,\n handleAdminLoginSuccess,\n handleRefreshRequest,\n handleRefreshSuccess,\n handleAutoLoginRequest,\n handleAutoLoginSuccess,\n handleAutoAdminLoginRequest,\n handleAutoAdminLoginSuccess,\n handleLogout,\n]\n","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take } from 'redux-saga/effects';\n\nimport { fetchCategories, fetchEngineMakers } from './api';\n\n// Actions\nconst FETCH_REQUEST = 'bmm/engineMakers/FETCH_REQUEST';\nconst FETCH_SUCCESS = 'bmm/engineMakers/FETCH_SUCCESS';\nconst FETCH_FAILED = 'bmm/engineMakers/FETCH_FAILED';\n\n// Action Creators\nexport const fetchRequest = createAction(FETCH_REQUEST);\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\nexport const fetchFailed = createAction(FETCH_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: [],\n};\n\n// Reducer\nexport default handleActions({\n [FETCH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [FETCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [FETCH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n }\n},initialState);\n\n//Sagas\nfunction* handleFetchEngineMakers(context) {\n while(true){\n yield take(FETCH_REQUEST);\n const payload = yield call(fetchEngineMakers);\n if(payload) {\n yield put(fetchSuccess(payload));\n } else {\n yield put(fetchFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleFetchEngineMakers,\n];\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { call, put, take } from 'redux-saga/effects';\r\n\r\nimport { fetchEngineModels, fetchModels } from './api';\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/engineModels/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/engineModels/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/engineModels/FETCH_FAILED';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\n\r\n// Initial State\r\nconst initialState = {\r\n isLoading: false,\r\n data: [],\r\n};\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n data: action.payload,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n data: []\r\n }\r\n }\r\n},initialState);\r\n\r\n//Sagas\r\nfunction* handleFetchEngineModels(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchEngineModels, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'));\r\n }\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handleFetchEngineModels,\r\n];\r\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { channel } from 'redux-saga';\r\nimport { call, put, take, select } from 'redux-saga/effects';\r\nimport {t} from 'i18next';\r\n\r\nimport * as countriesAction from '../countries';\r\nimport * as engineMakersAction from '../engineMakers';\r\nimport * as engineModelsAction from '../engineModels';\r\nimport * as categoriesAction from '../categories';\r\nimport * as modelsAction from '../models';\r\nimport * as messageModule from '../message';\r\nimport * as confirmModule from '../confirm';\r\n\r\nimport { fetchItem, postNewItem, postUpgradeItem, putItem, deleteItem } from '../api/engine';\r\nimport { checkFile } from '../api/common';\r\n\r\nimport * as formTypes from '../../constants/formTypes';\r\nimport * as fileTypes from '../../constants/fileTypes';\r\n\r\nimport fileTitle from '../../constants/fileTitle';\r\n\r\n// Initial State\r\nconst initialState = {\r\n activeStep: 0,\r\n formType: null,\r\n hasFormOpened: false,\r\n isLoading: false,\r\n isUploading: false,\r\n isDeleting: false,\r\n file: null,\r\n changeLogFile: null,\r\n upgradeTargetId: null, //アップグレード対象ID\r\n isSerialEditable: false,\r\n engine: {\r\n id: null, //マニュアルID\r\n file_name: '', //ファイル名\r\n file_type: '', //ファイルタイプ\r\n change_log_file_name: '', //変更履歴ファイル名\r\n version: '0.0.0', //バージョン\r\n title_ja: '', //日本語タイトル\r\n title_en: '', //英語タイトル\r\n destination: '', //仕向\r\n language: '', //言語\r\n binding: '', //綴じ\r\n form_size: '', //用紙サイズ\r\n page_num: null, //ページ数\r\n overview_ja: '', //日本語概要\r\n overview_en: '', //英語概要\r\n evapor: '', //エバポ保証声明書\r\n eu_declaration: '', //EU適合宣言\r\n display: true, //表示させるかどうか\r\n is_allowed_online_document: true, //マニュアル参照システム表示するかどうか\r\n },\r\n new_serials:[], //新規機番データ\r\n serials:[], //過去機番データ\r\n models: [], //選択中機種\r\n countries:[], //国権限\r\n categories:[], //機種カテゴリ\r\n engineMakers: [],//エンジンメーカー\r\n engineModels: [],//エンジン型式\r\n editable_max_version: null, //編集時の最大バージョン\r\n}\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/engineForm/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/engineForm/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/engineForm/FETCH_FAILED';\r\nconst UPLOAD_REQUEST = 'bmm/engineForm/UPLOAD_REQUEST';\r\nconst UPLOAD_SUCCESS = 'bmm/engineForm/UPLOAD_SUCCESS';\r\nconst UPLOAD_FAILED = 'bmm/engineForm/UPLOAD_FAILED';\r\nconst POST_NEW_REQUEST = 'bmm/engineForm/POST_NEW_REQUEST';\r\nconst POST_NEW_SUCCESS = 'bmm/engineForm/POST_NEW_SUCCESS';\r\nconst POST_NEW_FAILED = 'bmm/engineForm/POST_NEW_FAILED';\r\nconst POST_UPGRADE_REQUEST = 'bmm/engineForm/POST_UPGRADE_REQUEST';\r\nconst POST_UPGRADE_SUCCESS = 'bmm/engineForm/POST_UPGRADE_SUCCESS';\r\nconst POST_UPGRADE_FAILED = 'bmm/engineForm/POST_UPGRADE_FAILED';\r\nconst PUT_REQUEST = 'bmm/engineForm/PUT_MANUAL';\r\nconst PUT_SUCCESS = 'bmm/engineForm/PUT_SUCCESS';\r\nconst PUT_FAILED = 'bmm/engineForm/PUT_FAILED';\r\nconst DELETE_REQUEST = 'bmm/engineForm/DELETE_REQUEST';\r\nconst DELETE_SUCCESS = 'bmm/engineForm/DELETE_SUCCESS';\r\nconst DELETE_FAILED = 'bmm/engineForm/DELETE_FAILED';\r\nconst OPEN_NEW = 'bmm/engineForm/OPEN_NEW';\r\nconst OPEN_EDIT = 'bmm/engineForm/OPEN_EDIT';\r\nconst OPEN_UPGRADE = 'bmm/engineForm/OPEN_UPGRADE';\r\nconst INPUT_CHANGED = 'bmm/engineForm/INPUT_CHANGED';\r\nconst RESET_FORM = 'bmm/engineForm/RESET_FORM';\r\nconst STEP_NEXT_REQUEST = 'bmm/engineForm/STEP_NEXT_REQUEST';\r\nconst STEP_NEXT = 'bmm/engineForm/STEP_NEXT';\r\nconst STEP_BACK = 'bmm/engineForm/STEP_BACK';\r\nconst STEP_RESET = 'bmm/engineForm/STEP_RESET';\r\nconst BACK_TO_LIST = 'bmm/engineForm/BACK_TO_LIST';\r\nconst FILE_SELECTED = 'bmm/engineForm/FILE_SELECTED';\r\nconst FILE_SELECTED_SUCCESS = 'bmm/engineForm/FILE_SELECTED_SUCCESS';\r\nconst FILE_SELECTED_FAILED = 'bmm/engineForm/FILE_SELECTED_FAILED';\r\nconst CHANGE_LOG_FILE_SELECTED = 'bmm/engineForm/CHANGE_LOG_FILE_SELECTED';\r\nconst CHANGE_LOG_FILE_SUCCESS = 'bmm/engineForm/CHANGE_LOG_FILE_SUCCESS';\r\nconst CHANGE_LOG_FILE_FAILED = 'bmm/engineForm/CHANGE_LOG_FILE_FAILED';\r\nconst SERIAL_CHANGED = 'bmm/maualForm/SERIAL_CHANGED';\r\nconst PAST_SERIAL_CHANGED = 'bmm/engineForm/PAST_SERIAL_CHANGED';\r\nconst ENGINE_MAKERS_SELECTED = 'bmm/engineForm/ENGINE_MAKERS_SELECTED';\r\nconst ENGINE_MODELS_SELECTED = 'bmm/engineForm/ENGINE_MODELS_SELECTED';\r\nconst CATEGORIES_SELECTED = 'bmm/engineForm/CATEGORIES_SELECTED';\r\nconst MODELS_SELECTED = 'bmm/engineForm/MODELS_SELECTED';\r\nconst COUNTRIES_SELECTED = 'bmm/engineForm/COUNTRIES_SELECTED';\r\nconst RESET_MANUAL = 'bmm/engineForm/RESET_MANUAL';\r\nconst PREPARE_UPGRADE = 'bmm/engineForm/PREPARE_UPGRADE';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\nexport const uploadRequest = createAction(UPLOAD_REQUEST);\r\nexport const uploadSuccess = createAction(UPLOAD_SUCCESS);\r\nexport const uploadFailed = createAction(UPLOAD_FAILED);\r\nexport const postNewRequest = createAction(POST_NEW_REQUEST);\r\nexport const postNewSuccess = createAction(POST_NEW_SUCCESS);\r\nexport const postNewFailed = createAction(POST_NEW_FAILED);\r\nexport const postUpgradeRequest = createAction(POST_UPGRADE_REQUEST);\r\nexport const postUpgradeSuccess = createAction(POST_UPGRADE_SUCCESS);\r\nexport const postUpgradeFailed = createAction(POST_UPGRADE_FAILED);\r\nexport const putRequest = createAction(PUT_REQUEST);\r\nexport const putSuccess = createAction(PUT_SUCCESS);\r\nexport const putFailed = createAction(PUT_FAILED);\r\nexport const deleteRequest = createAction(DELETE_REQUEST);\r\nexport const deleteSuccess = createAction(DELETE_SUCCESS);\r\nexport const deleteFailed = createAction(DELETE_FAILED);\r\nexport const inputChanged = createAction(INPUT_CHANGED);\r\nexport const resetForm = createAction(RESET_FORM);\r\nexport const openNew = createAction(OPEN_NEW);\r\nexport const openEdit = createAction(OPEN_EDIT);\r\nexport const openUpgrade = createAction(OPEN_UPGRADE);\r\nexport const stepNextRequest = createAction(STEP_NEXT_REQUEST);\r\nexport const stepNext = createAction(STEP_NEXT);\r\nexport const stepBack = createAction(STEP_BACK);\r\nexport const stepReset = createAction(STEP_RESET);\r\nexport const backToList = createAction(BACK_TO_LIST);\r\nexport const fileSelected = createAction(FILE_SELECTED);\r\nexport const fileSelectedSuccess = createAction(FILE_SELECTED_SUCCESS);\r\nexport const fileSelectedFailed = createAction(FILE_SELECTED_FAILED);\r\nexport const changeLogFileSelected = createAction(CHANGE_LOG_FILE_SELECTED);\r\nexport const changeLogFileSuccess = createAction(CHANGE_LOG_FILE_SUCCESS);\r\nexport const changeLogFileFailed = createAction(CHANGE_LOG_FILE_FAILED);\r\nexport const serialChanged = createAction(SERIAL_CHANGED);\r\nexport const pastSerialChanged = createAction(PAST_SERIAL_CHANGED);\r\nexport const engineMakersSelected = createAction(ENGINE_MAKERS_SELECTED);\r\nexport const engineModelsSelected = createAction(ENGINE_MODELS_SELECTED);\r\nexport const categoriesSelected = createAction(CATEGORIES_SELECTED);\r\nexport const modelsSelected = createAction(MODELS_SELECTED);\r\nexport const countriesSelected = createAction(COUNTRIES_SELECTED);\r\nexport const resetEngine = createAction(RESET_MANUAL);\r\nexport const prepareUpgrade = createAction(PREPARE_UPGRADE);\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n engine: action.payload.engine,\r\n new_serials: [],\r\n serials: action.payload.serials,\r\n models: action.payload.models,\r\n countries: action.payload.countries,\r\n categories: action.payload.categories,\r\n engineMakers: action.payload.engine_makers,\r\n engineModels: action.payload.engine_models,\r\n isSerialEditable: false, //for edit\r\n editable_max_version: action.payload.editable_max_version,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true\r\n }\r\n },\r\n [UPLOAD_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_NEW_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_UPGRADE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [PUT_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n }\r\n },\r\n [DELETE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [OPEN_NEW]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.NEW,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_EDIT]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.EDIT,\r\n isSerialEditable: false,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_UPGRADE]: (state, action) => {\r\n return {\r\n ...initialState,\r\n upgradeTargetId: action.payload,\r\n formType: formTypes.UPGRADE,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [RESET_FORM]: (state, action) => {\r\n return initialState\r\n },\r\n [STEP_NEXT]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep + 1\r\n }\r\n },\r\n [STEP_BACK]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep - 1\r\n }\r\n },\r\n [STEP_RESET]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: 0\r\n }\r\n },\r\n [INPUT_CHANGED]: (state, action) => {\r\n return {\r\n ...state,\r\n engine: {\r\n ...state.engine,\r\n [action.payload.key]: action.payload.value,\r\n }\r\n }\r\n },\r\n [SERIAL_CHANGED]: (state, action) => {\r\n const { modelId, key, value } = action.payload;\r\n const maxVersion = Math.max(...state.serials.map(m=>getRelativeVer(m.version)));\r\n return {\r\n ...state,\r\n new_serials: state.new_serials.map(data => {\r\n if(data.model_id === modelId){\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data;\r\n }),\r\n serials: state.serials.map(data => {\r\n if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial != value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: value-1,\r\n }\r\n }else if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial == value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: '99999'\r\n }\r\n }\r\n return data;\r\n }),\r\n }\r\n },\r\n [PAST_SERIAL_CHANGED]: (state, action) => {\r\n const { engineId, modelId, key, value } = action.payload;\r\n return {\r\n ...state,\r\n serials: state.serials.map(data => {\r\n if(data.engine_id === engineId && data.model_id === modelId) {\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data\r\n }),\r\n }\r\n },\r\n [FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [FILE_SELECTED_SUCCESS]: (state, action) => {\r\n const file = action.payload;\r\n const fileName = file.name;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: file,\r\n engine: {\r\n ...state.engine,\r\n file_name: fileName,\r\n file_type: \"EPC\",\r\n title_ja: \"エンジンパーツカタログ\",\r\n title_en: \"Engine Parts Catalog\",\r\n }\r\n }\r\n },\r\n [FILE_SELECTED_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n engine: {\r\n ...state.engine,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SUCCESS]: (state, action) => {\r\n const changeLogFile = action.payload;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n changeLogFile: changeLogFile,\r\n engine: {\r\n ...state.engine,\r\n change_log_file_name: changeLogFile.name,\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n changeLogFile: null,\r\n engine: {\r\n ...state.engine,\r\n change_log_file_name: '',\r\n }\r\n }\r\n },\r\n [ENGINE_MAKERS_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n engineMakers: action.payload || [],\r\n }\r\n },\r\n [ENGINE_MODELS_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n engineModels: action.payload || [],\r\n }\r\n },\r\n [CATEGORIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n categories: action.payload,\r\n }\r\n },\r\n [MODELS_SELECTED]: (state, action) => {\r\n const model_ids = action.payload || [];\r\n if(state.formType!==formTypes.EDIT){\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map(id => {\r\n return {\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n } else {\r\n if(!state.isSerialEditable) {\r\n const maxSerial = Math.max(...state.serials.map(m=>getRelativeVer(m.version)))\r\n const newSerials = state.serials.filter(x => getRelativeVer(x.version) === maxSerial);\r\n const serials = state.serials.filter(x => !newSerials.includes(x));\r\n return {\r\n ...state,\r\n models: newSerials.map(x => x.model_id),\r\n new_serials: newSerials,\r\n serials: serials,\r\n isSerialEditable: true,\r\n }\r\n } else {\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map( id => {\r\n return {\r\n engine_id: state.engine.id,\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n },\r\n [COUNTRIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n countries: action.payload\r\n }\r\n },\r\n [RESET_MANUAL]: (state, action) => {\r\n return {\r\n ...state,\r\n engine: initialState.engine,\r\n }\r\n },\r\n [PREPARE_UPGRADE]: (state, action) => {\r\n return {\r\n ...state,\r\n engine: {\r\n ...state.engine,\r\n file_name: '',\r\n change_log_file_name: '',\r\n file_type: null,\r\n title_ja: '',\r\n title_en: '',\r\n version: null,\r\n }\r\n }\r\n },\r\n},initialState);\r\n\r\n\r\n// Selectors\r\n//全カテゴリとモデルの取得\r\nconst getCategories = state => state.categories.data;\r\nconst getModels = state => state.models.data;\r\n\r\n//選択中カテゴリとモデルの取得\r\nconst getSelectedCategories = state => state.engineForm.categories;\r\nconst getSelectedModels = state => state.engineForm.models;\r\n\r\n//選択中エンジンメーカーとエンジン型式\r\nconst getSelectedEngineMakers = state => state.engineForm.engineMakers;\r\nconst getSelectedEngineModels = state => state.engineForm.engineModels;\r\n\r\n//マニュアルフォームデータ取得\r\nconst getEngineForm = state => state.engineForm;\r\n\r\n//新規POST用データの取得\r\nconst getPostNewData = state => {\r\n return {\r\n engine: state.engineForm.engine,\r\n categories: state.engineForm.categories.map(item => { return { code: item}}),\r\n countries: state.engineForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.engineForm.new_serials,\r\n engine_makers: state.engineForm.engineMakers.map(item => ({code: item})),\r\n engine_models: state.engineForm.engineModels.map(item => ({code: item})),\r\n }\r\n};\r\n//アップグレード用データの取得\r\nconst getPostUpgradeData = state => {\r\n return {\r\n engine: state.engineForm.engine,\r\n categories: state.engineForm.categories.map(item => { return { code: item}}),\r\n countries: state.engineForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.engineForm.new_serials,\r\n serials: state.engineForm.serials,\r\n engine_makers: state.engineForm.engineMakers.map(item => ({code: item})),\r\n engine_models: state.engineForm.engineModels.map(item => ({code: item})),\r\n }\r\n}\r\n//更新用データの取得\r\nconst getPutData = state => {\r\n return {\r\n engine: state.engineForm.engine,\r\n categories: state.engineForm.categories.map(item => {return {code: item}}),\r\n countries: state.engineForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.engineForm.new_serials,\r\n serials: state.engineForm.serials,\r\n engine_makers: state.engineForm.engineMakers.map(item => ({code: item})),\r\n engine_models: state.engineForm.engineModels.map(item => ({code: item})),\r\n }\r\n}\r\n//マニュアルデータ取得\r\nconst getEngine = state => state.engineForm.engine;\r\n//ファイルデータ取得\r\nconst getFile = state => state.engineForm.file;\r\n//改訂履歴ファイルデータ取得\r\nconst getChangeLogFile = state => state.engineForm.changeLogFile;\r\n//フォームタイプ取得\r\nconst getFormType = state => state.engineForm.formType;\r\n//アップグレード対象ID取得\r\nconst getUpgradeTargetId = state => state.engineForm.upgradeTargetId;\r\n//編集可能フラグの取得\r\nconst getIsSerialEditable = state => state.isSerialEditable;\r\n\r\n// Sagas\r\n\r\nfunction* handlePutSuccess(context) {\r\n while(true){\r\n yield take(PUT_SUCCESS);\r\n yield call(context.history.push, 'engine_list');\r\n }\r\n}\r\n\r\nfunction* handlePostNewSuccess(context) {\r\n while(true){\r\n yield take(POST_NEW_SUCCESS);\r\n yield call(context.history.push, 'engine_list');\r\n }\r\n}\r\nfunction* handlePostUpgradeSuccess(context) {\r\n while(true){\r\n yield take(POST_UPGRADE_SUCCESS);\r\n yield call(context.history.push, 'engine_list');\r\n }\r\n}\r\n\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedFile(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const engine = yield select(getEngine);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === engine.file_name) {\r\n //バリデーションを行わない\r\n yield put(fileSelectedSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(fileSelectedSuccess(file));\r\n }\r\n else {\r\n yield put(fileSelectedFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedFileFailed(context) {\r\n while(true){\r\n yield take(FILE_SELECTED_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n//ファイル選択成功アクションを待ち受ける\r\nfunction* handleSelectedFileSuccess(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED_SUCCESS);\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n\r\n const formType = yield select(getFormType);\r\n const engine = yield select(getEngine);\r\n //マニュアルが編集時かつ同一ファイル名の場合はカテゴリ変更しない\r\n if(formType === formTypes.EDIT \r\n && engine.file_name == fileName){\r\n return;\r\n }\r\n\r\n var category = '';\r\n const categories = yield select(getCategories) || [];\r\n categories.some( x => {\r\n if(modelName.startsWith(x.category_short_name)){\r\n category=x.id; //既存DBの構造上idではなくカテゴリ名を渡す\r\n return true;\r\n }\r\n });\r\n if (category) {\r\n yield put(categoriesSelected([category]))\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedChangeLogFile(context) {\r\n while(true){\r\n const action = yield take(CHANGE_LOG_FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const engine = yield select(getEngine);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === engine.change_log_file_name) {\r\n //バリデーションを行わない\r\n yield put(changeLogFileSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(changeLogFileSuccess(file));\r\n }\r\n else {\r\n yield put(changeLogFileFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedChangeLogFileFailed(context) {\r\n while(true){\r\n yield take(CHANGE_LOG_FILE_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n\r\n//マニュアルデータ取得アクションを待ち受ける\r\nfunction* handleFetchEngine(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchItem, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'))\r\n }\r\n }\r\n}\r\n\r\n//マニュアルデータ取得成功を待ち受ける\r\nfunction* handleFetchSuccess(context) {\r\n while(true) {\r\n const action = yield take(FETCH_SUCCESS);\r\n const formType = yield select(getFormType);\r\n\r\n if(formType===formTypes.UPGRADE){\r\n yield put(prepareUpgrade());\r\n }\r\n const categories = yield select(getSelectedCategories);\r\n const models = yield select(getSelectedModels);\r\n yield put(modelsSelected(models));\r\n yield put(categoriesSelected(categories))\r\n\r\n const engineMakers = yield select(getSelectedEngineMakers);\r\n const engineModels = yield select(getSelectedEngineModels);\r\n yield put(engineMakersSelected(engineMakers));\r\n yield put(engineModelsSelected(engineModels));\r\n }\r\n}\r\n\r\n//マニュアル更新アクションを待ち受ける\r\nfunction* handlePutEngine(context) {\r\n while(true) {\r\n const action = yield take(PUT_REQUEST);\r\n const payload = yield call(putItem,\r\n action.payload.file,\r\n action.payload.putData,\r\n action.payload.changeLogFile,\r\n );\r\n if(payload) {\r\n yield put(putSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('put_success')}\r\n ));\r\n } else {\r\n yield put(putFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('put_failed')}\r\n ));\r\n yield call(context.history.push, 'engine_list');\r\n }\r\n }\r\n}\r\n\r\n\r\n//アップグレードアクションを待ち受ける\r\nfunction* handlePostUpgradeEngine(context) {\r\n while(true) {\r\n const action = yield take(POST_UPGRADE_REQUEST);\r\n const payload = yield call(postUpgradeItem,\r\n action.payload.upgradeTargetId,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.changeLogFile);\r\n if(payload) {\r\n yield put(postUpgradeSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_upgrade_success')}\r\n ));\r\n } else {\r\n yield put(postUpgradeFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_upgrade_failed')}\r\n ));\r\n yield call(context.history.push, 'engine_list');\r\n }\r\n }\r\n}\r\n\r\n//新規登録アクションを待ち受ける\r\nfunction* handlePostNewEngine(context) {\r\n while(true){\r\n const action = yield take(POST_NEW_REQUEST);\r\n const payload = yield call(postNewItem,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.changeLogFile);\r\n if(payload) {\r\n yield put(postNewSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_new_success')}\r\n ));\r\n } else {\r\n yield put(postNewFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_new_failed')}\r\n ));\r\n yield call(context.history.push, 'engine_list');\r\n }\r\n }\r\n}\r\n\r\n//フォーム(新規)表示アクションを待ち受ける\r\nfunction* handleOpenNewForm(context) {\r\n while(true){\r\n yield take(OPEN_NEW);\r\n //エンジンメーカー一覧を取得する\r\n yield put(engineMakersAction.fetchRequest());\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'engine');\r\n }\r\n}\r\n\r\n//フォーム(アップグレード)表示アクションを待ち受ける\r\nfunction* handleOpenUpgradeForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_UPGRADE);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //エンジンメーカー一覧を取得する\r\n yield put(engineMakersAction.fetchRequest());\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'engine');\r\n }\r\n}\r\n\r\n//フォーム(編集)表示アクションを待ち受ける\r\nfunction* handleOpenEditForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_EDIT);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //エンジンメーカー一覧を取得する\r\n yield put(engineMakersAction.fetchRequest());\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'engine');\r\n }\r\n}\r\n\r\n\r\n//リストへ戻るためのアクションを待ち受ける\r\nfunction* handleBackToList(context) {\r\n while(true){\r\n yield take(BACK_TO_LIST);\r\n const confirmChannel = channel()\r\n\r\n yield put(confirmModule.showConfirm({\r\n title: t('confirm'),\r\n content: t('back_to_list_confirm'),\r\n actions: {\r\n ok: () => {\r\n context.history.push('engine_list');\r\n }\r\n }\r\n }))\r\n }\r\n}\r\n\r\n\r\n//マニュアル削除のアクションを待ち受ける\r\nfunction* handleDeleteEngine(context) {\r\n while(true) {\r\n const action = yield take(DELETE_REQUEST)\r\n const payload = yield call(deleteItem, action.payload)\r\n if(payload) {\r\n yield put(deleteSuccess());\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('delete_engine_success')}\r\n ));\r\n } else {\r\n yield put(deleteFailed());\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('delete_engine_failed')}\r\n ));\r\n }\r\n context.history.push('engine_list');\r\n }\r\n}\r\n\r\n\r\n//カテゴリ選択のアクションを待ち受ける\r\nfunction * handleCategoriesSelected(context) {\r\n while(true) {\r\n const action = yield take(CATEGORIES_SELECTED);\r\n\r\n //カテゴリ選択で紐づかなくなった機種を外す\r\n const categories = yield select(getCategories);\r\n const selectedCategories = yield select(getSelectedCategories);\r\n const selectedModels = yield select(getSelectedModels);\r\n const models = yield select(getModels);\r\n\r\n const isSerialEditable = yield select(getIsSerialEditable);\r\n const formType = yield select(getFormType);\r\n\r\n if((formType!==formTypes.EDIT && isSerialEditable) && ( categories && selectedCategories && selectedModels && models)) {\r\n const _selectedCategories = categories.filter(x => selectedCategories.includes(x.id));\r\n const _selectedModels = models.filter(x => selectedModels.includes(x.id) &&\r\n _selectedCategories.map(s => s.category_short_name).includes(x.category_code));\r\n yield put(modelsSelected(_selectedModels.map(x => { return x.id })));\r\n }\r\n\r\n // カテゴリに応じた機種一覧を取得する\r\n yield put(modelsAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\n//エンジンメーカー選択のアクションを待ち受ける\r\nfunction * handleEngineMakersSelected(context) {\r\n while(true) {\r\n const action = yield take(ENGINE_MAKERS_SELECTED);\r\n\r\n // エンジンメーカーに応じたエンジン型式一覧を取得する\r\n yield put(engineModelsAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\n\r\n//機種選択のアクションを待ち受ける\r\nfunction * handleModelsSelected(context) {\r\n while(true) {\r\n const action = yield take(MODELS_SELECTED);\r\n // 機種に応じた国一覧を取得する\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\nconst validateString = (str, maxLen, minLen=0) => {\r\n if (str && minLen <= str.length && str.length <= maxLen) {\r\n return true;\r\n }else {\r\n return false;\r\n }\r\n}\r\n\r\nconst validateNumber = (num, maxNum, minNum=0) => {\r\n if (num && minNum <= num && num <= maxNum ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * バージョン(xx.xx.xx)を比較可能な値に変換する\r\n */\r\nconst getRelativeVer = (x) => {\r\n const xSplit = String(x).split('.');\r\n const x1 = Number(xSplit[0]) || 0;\r\n const x2 = Number(xSplit[1]) || 0;\r\n const x3 = Number(xSplit[2]) || 0;\r\n return x1*100+x2*10+x3;\r\n}\r\n\r\n\r\n//各ステップの次へボタン押下のリクエストを待ち受ける(バリデーション)\r\n//[参考]複雑なフォームでなければ、Redux-FormやFormikを利用してバリデーションする\r\nfunction * handleStepNextRequest(context) {\r\n while (true) {\r\n const action = yield take(STEP_NEXT_REQUEST);\r\n const formType = yield select(getFormType);\r\n const engineForm = yield select(getEngineForm);\r\n const currentStep = engineForm.activeStep;\r\n switch (currentStep) {\r\n case 0:\r\n if (engineForm.engine.file_name !== '' &&\r\n engineForm.engine.file_type !== '' &&\r\n engineForm.engine.title_ja !== '' &&\r\n engineForm.engine.title_en !== ''){\r\n yield put(stepNext())\r\n }else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_input_error')}\r\n ));\r\n }\r\n break;\r\n case 1:\r\n if (engineForm.categories.length !== 0 &&\r\n engineForm.new_serials.length !== 0 &&\r\n engineForm.engine.version !== '') {\r\n const minVersion = Math.max(...engineForm.serials.map(m=>getRelativeVer(m.version)))\r\n if(getRelativeVer(engineForm.engine.version) <= minVersion){\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('version_range_error')}\r\n ));\r\n break;\r\n }\r\n if(engineForm.editable_max_version &&\r\n (getRelativeVer(engineForm.editable_max_version) <= getRelativeVer(engineForm.engine.version))) {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('version_range_edit_error')}\r\n ));\r\n break;\r\n }\r\n yield put(stepNext())\r\n }else {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('model_input_error')}\r\n ));\r\n }\r\n break;\r\n case 2:\r\n if (engineForm.serials.every(item => item.start_serial!==null && item.end_serial!==null)\r\n && engineForm.new_serials.every(item => item.start_serial!==null && item.end_serial!==null)){\r\n if(engineForm.serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )\r\n &&\r\n engineForm.new_serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )) {\r\n yield put(stepNext())\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_range_error')}\r\n ));\r\n }\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_input_error')}\r\n ));\r\n }\r\n break;\r\n case 3:\r\n /* 国として(共栄社)のみとしたい場合は空となるため、バリデーションを外す\r\n if(engineForm.countries.length !== 0) { //ページ数のバリデーションも後で追加\r\n */\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n switch (engineForm.formType) {\r\n case formTypes.NEW:\r\n const file = yield select(getFile);\r\n const changeLogFile = yield select(getChangeLogFile);\r\n const postData = yield select(getPostNewData);\r\n yield put(postNewRequest({file: file, postData: postData, changeLogFile: changeLogFile }));\r\n //yield call(context.history.push, 'engine_list');\r\n break;\r\n case formTypes.UPGRADE:\r\n yield put(postUpgradeRequest({\r\n upgradeTargetId: yield select(getUpgradeTargetId),\r\n file: yield select(getFile),\r\n postData: yield select(getPostUpgradeData),\r\n changeLogFile: yield select(getChangeLogFile)\r\n }));\r\n //yield call(context.history.push, 'engine_list');\r\n break;\r\n case formTypes.EDIT:\r\n yield put(putRequest({\r\n file: yield select(getFile),\r\n putData: yield select(getPutData),\r\n changeLogFile: yield select(getChangeLogFile)\r\n }));\r\n //yield call(context.history.push, 'engine_list');\r\n default:\r\n break;\r\n }\r\n /*\r\n } else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('country_input_error')}\r\n ));\r\n }\r\n */\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handlePutSuccess,\r\n handlePostNewSuccess,\r\n handlePostUpgradeSuccess,\r\n handleSelectedFile,\r\n handleSelectedFileSuccess,\r\n handleSelectedFileFailed,\r\n handleSelectedChangeLogFile,\r\n handleSelectedChangeLogFileFailed,\r\n handleFetchEngine,\r\n handleFetchSuccess,\r\n handleOpenNewForm,\r\n handleOpenEditForm,\r\n handleOpenUpgradeForm,\r\n handleBackToList,\r\n handleModelsSelected,\r\n handleCategoriesSelected,\r\n handleEngineMakersSelected,\r\n handleStepNextRequest,\r\n handlePostNewEngine,\r\n handlePostUpgradeEngine,\r\n handlePutEngine,\r\n handleDeleteEngine,\r\n];\r\n","/*\n * API関連処理\n * 時間があれば、ファイル分割する\n * 時間があれば、失敗時はnullではなくエラーを返してメッセージ表示させる\n */\nimport http from './http'\nimport { getFormattedTime, saveFile } from './common';\n\nconst URI = \"/api/maintenances\";\nconst KEY = \"maintenance\";\n\nexport const initialState = {\n page: 0,\n per_page: 10,\n model_name: '',\n serial: '',\n version: '',\n file_types: {\n CA: true\n },\n sort: {\n key: '',\n order: ''\n },\n categories: [],\n}\n\n//(検索・CSV出力用) クエリ文字列の作成\n//Axiosの場合パラーメータとして直接渡せるらしいので、時間があれば変更する\nexport const createQueryString = (queries) => {\n const {page, per_page, model_name, serial, version, destination, language, file_types, only_latest, sort, categories, lang} = queries;\n\n var queryString = \"?\";\n queryString += \"page=\" + String(page);\n queryString += \"&per_page=\" + per_page;\n if(model_name){\n queryString += \"&model_name=\" + model_name;\n }\n if(serial){\n queryString += \"&serial=\" + serial;\n }\n if(version){\n queryString += \"&version=\" + version;\n }\n if(destination){\n queryString += \"&destination=\" + destination;\n }\n if(language){\n queryString += \"&language=\" + language;\n }\n if (file_types.UM){\n queryString += \"&file_type=UM\";\n }\n if (file_types.PC){\n queryString += \"&file_type=PC\";\n }\n if (file_types.PU){\n queryString += \"&file_type=PU\";\n }\n if (file_types.SM){\n queryString += \"&file_type=SM\";\n }\n if (sort && sort.key && sort.order) {\n queryString += \"&sort=\" + sort.key;\n queryString += \"&order=\" + sort.order;\n }\n if(categories) {\n categories.forEach(x => {\n queryString += \"&categories=\" + x;\n }); \n }\n queryString += `&only_latest=${only_latest}`;\n if(lang) {\n queryString += `&lang=${lang}`;\n }\n return queryString;\n}\n\n\n//一覧検索\nexport const searchList = (queries=initialState) => {\n return http.get(URI+createQueryString(queries))\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//CSV出力\nexport const exportCsv = (queries=initialState) => {\n return http.get(`${URI}/csv`+createQueryString(queries),\n { responseType:'blob', dataType:'binary'})\n .then((response) => {\n const fileName = `${KEY}_${getFormattedTime()}.csv`;\n\n if (window.navigator.msSaveBlob) {\n // for IE\n window.navigator.msSaveBlob(new Blob([response.data]), fileName);\n }\n else {\n const url = window.URL.createObjectURL(new Blob([response.data], {type: `text/csv`}));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', fileName); //or any other extension\n document.body.appendChild(link);\n link.click();\n }\n })\n .catch( res => {\n return null;\n })\n .catch( err => {\n return null\n })\n}\n\n/**CSVアップロード */\nexport const uploadCsv = (file) => {\n const data = new FormData();\n data.append('csvfile', file)\n return http.post(`${URI}/csv/upload`, data)\n .then( res => {\n return res;\n })\n .catch((error) => {\n if (error.response) {\n return error.response;\n } \n else {\n return null;\n }\n });\n}\n\n//データ取得\nexport const fetchItem = (id) => {\n return http.get(`${URI}/${id}`)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//データ削除\nexport const deleteItem = (id) => {\n return http.delete(`${URI}/${id}`)\n .then( res => {\n return `Success delete the file ${id}`\n })\n .catch( err => {\n return null;\n })\n}\n\n//新規登録\nexport const postNewItem = (file, postData, changeLogFile) => {\n //IDは含めない\n delete postData[KEY].id;\n return saveFile(file)\n .then(res => {\n if(changeLogFile) {\n saveFile(changeLogFile);\n }else{\n delete postData[KEY].change_log_file_name;\n }\n })\n .then( resp => {\n return http.post(URI, postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n\n\n//データ更新\nexport const putItem = (file, putData, changeLogFile) => {\n if (file){\n saveFile(file);\n }\n if (changeLogFile){\n saveFile(changeLogFile);\n }\n return http.put(`${URI}/${putData[KEY].id}`, putData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n}\n\n//アップグレード\nexport const postUpgradeItem = (upgradeTargetId, file, postData, changeLogFile) => {\n //IDは含めない\n delete postData[KEY].id;\n return saveFile(file)\n .then(res => {\n if(changeLogFile) {\n saveFile(changeLogFile);\n }else{\n delete postData[KEY].change_log_file_name;\n }\n })\n .then( resp => {\n return http.post(`${URI}/${upgradeTargetId}/upgrade`, postData)\n .then( res => {\n return res.data\n })\n .catch( err => {\n return null\n })\n })\n .catch( err => {\n return null;\n });\n}\n","// Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport * as messageModule from '../message';\nimport {t} from 'i18next';\n\nimport { searchList, exportCsv, uploadCsv } from '../api/maintenance';\nimport { downloadFile } from '../api/common';\nimport * as fileTypes from '../../constants/fileTypes';\n\n// Actions\nconst MENU_SELECTED = 'bmm/maintenanceList/MENU_SELECTED';\nconst RESET_ALL = 'bmm/maintenanceList/RESET_ALL';\nconst RESET_QUERIES = 'bmm/maintenanceList/RESET_QUERIES';\nconst SEARCH_REQUEST = 'bmm/maintenanceList/SEARCH_REQUEST';\nconst SEARCH_SUCCESS = 'bmm/maintenanceList/SEARCH_SUCCESS';\nconst SEARCH_FAILURE = 'bmm/maintenanceList/SEARCH_FAILURE';\nconst PAGING_REQUEST = 'bmm/maintenanceList/PAGING_REQUEST';\nconst PAGING_SUCCESS = 'bmm/maintenanceList/PAGING_SUCCESS';\nconst PAGING_FAILURE = 'bmm/maintenanceList/PAGING_FAILURE';\nconst SET_UPLOAD_FILE = 'bmm/maintenanceList/SET_UPLOAD_FILE';\nconst UPLOAD_CSV_REQUEST = 'bmm/maintenanceList/UPLOAD_CSV_REQUEST';\nconst UPLOAD_CSV_SUCCESS = 'bmm/maintenanceList/UPLOAD_CSV_SUCCESS';\nconst UPLOAD_CSV_FAILED = 'bmm/maintenanceList/UPLOAD_CSV_FAILED';\nconst EXPORT_CSV_REQUEST = 'bmm/maintenanceList/EXPORT_CSV_REQUEST';\nconst EXPORT_CSV_SUCCESS = 'bmm/maintenanceList/EXPORT_CSV_SUCCESS';\nconst EXPORT_CSV_FAILED = 'bmm/maintenanceList/EXPORT_CSV_FAILED';\nconst INPUT_CHANGED = 'bmm/maintenanceList/INPUT_CHANGED';\nconst FILE_TYPE_CHANGED = 'bmm/maintenanceList/FILE_TYPE_CHANGED';\nconst PAGE_CHANGED = 'bmm/maintenanceList/PAGE_CHANGED';\nconst PER_PAGE_CHANGED = 'bmm/maintenanceList/PER_PAGE_CHANGED';\nconst SORT_CHANGED = 'bmm/maintenanceList/SORT_CHANGED';\nconst DOWNLOAD_REQUEST = 'bmm/maintenanceList/DOWNLOAD_REQUEST';\nconst DOWNLOAD_SUCCESS = 'bmm/maintenanceList/DOWNLOAD_SUCCESS';\nconst DOWNLOAD_FAILED = 'bmm/maintenanceList/DOWNLOAD_FAILED';\n\n\n// Action Creators\nexport const menuSelected = createAction(MENU_SELECTED);\nexport const resetAll = createAction(RESET_ALL);\nexport const resetQueries = createAction(RESET_QUERIES);\nexport const searchRequest = createAction(SEARCH_REQUEST);\nexport const searchSuccess = createAction(SEARCH_SUCCESS);\nexport const searchFailure = createAction(SEARCH_FAILURE);\nexport const pagingRequest = createAction(PAGING_REQUEST);\nexport const pagingSuccess = createAction(PAGING_SUCCESS);\nexport const pagingFailure = createAction(PAGING_FAILURE);\nexport const setUploadFile = createAction(SET_UPLOAD_FILE);\nexport const uploadCsvRequest = createAction(UPLOAD_CSV_REQUEST);\nexport const uploadCsvSuccess = createAction(UPLOAD_CSV_SUCCESS);\nexport const uploadCsvFailed = createAction(UPLOAD_CSV_FAILED);\nexport const exportCsvRequest = createAction(EXPORT_CSV_REQUEST);\nexport const exportCsvSuccess = createAction(EXPORT_CSV_SUCCESS);\nexport const exportCsvFailed = createAction(EXPORT_CSV_FAILED);\nexport const inputChanged = createAction(INPUT_CHANGED);\nexport const fileTypeChanged = createAction(FILE_TYPE_CHANGED);\nexport const pageChanged = createAction(PAGE_CHANGED);\nexport const perPageChanged = createAction(PER_PAGE_CHANGED);\nexport const sortChanged = createAction(SORT_CHANGED);\nexport const downloadRequest = createAction(DOWNLOAD_REQUEST);\nexport const downloadSuccess = createAction(DOWNLOAD_SUCCESS);\nexport const downloadFailed = createAction(DOWNLOAD_FAILED);\n\n// Initial State\nconst initialState = {\n isLoading: false,\n data: [],\n queries: {\n page: 1,\n per_page: 10,\n model_name: '',\n serial: '',\n version: '',\n destination: '',\n language: '',\n file_types: {\n UM: false,\n PC: false,\n PU: false,\n SM: false\n },\n sort: {\n key: '',\n order: ''\n },\n only_latest: false,\n categories: [],\n },\n upload_file: null,\n};\n\n\n// Reducer\nexport default handleActions({\n [MENU_SELECTED]: (state, action) => {\n const type = action.payload.type;\n switch(type){\n case fileTypes.UM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: false,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.PC:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: true,\n PU: true,\n SM: false\n }}}\n break;\n case fileTypes.SM:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: false,\n PC: false,\n PU: false,\n SM: true\n }}}\n break;\n default:\n return {\n ...state,\n queries: {\n ...initialState.queries,\n file_types: {\n UM: true,\n PC: true,\n PU: true,\n SM: true\n }}}\n break;\n }\n },\n [RESET_ALL]: (state, action) => {\n return initialState;\n },\n [RESET_QUERIES]: (state, action) => {\n return {\n ...state,\n queries: initialState.queries\n }\n },\n [SEARCH_REQUEST]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1\n },\n isLoading: true\n }\n },\n [SEARCH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [SEARCH_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [PAGING_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [PAGING_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n }\n },\n [PAGING_FAILURE]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n data: []\n }\n },\n [SET_UPLOAD_FILE]: (state, action) => {\n return {\n ...state,\n upload_file: action.payload\n }\n },\n [UPLOAD_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [UPLOAD_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [UPLOAD_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n upload_file: null\n }\n },\n [EXPORT_CSV_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [EXPORT_CSV_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [EXPORT_CSV_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [INPUT_CHANGED]: (state, action) => {\n return {\n ...state,\n queries:{\n ...state.queries,\n [action.payload.key]: action.payload.value\n }\n }\n },\n [FILE_TYPE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n file_types:{\n ...state.queries.file_types,\n [action.payload.key]: action.payload.value\n }\n }\n }\n },\n [PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: action.payload,\n }\n }\n },\n [PER_PAGE_CHANGED]: (state, action) => {\n return {\n ...state,\n queries: {\n ...state.queries,\n page: 1,\n per_page: action.payload,\n }\n }\n },\n [SORT_CHANGED]: (state, action) => {\n let _sort;\n if (state.queries.sort.key !== action.payload) {\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else{\n if(state.queries.sort.order === ''){\n _sort = {\n key: action.payload,\n order: 'asc'\n }\n }\n else if(state.queries.sort.order === 'asc'){\n _sort = {\n key: action.payload,\n order: 'desc'\n }\n }\n else if(state.queries.sort.order === 'desc'){\n _sort = {\n key: '',\n order: ''\n }\n }\n }\n return {\n ...state,\n queries: {\n ...state.queries,\n sort: _sort\n }\n }\n },\n [DOWNLOAD_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true,\n }\n },\n [DOWNLOAD_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [DOWNLOAD_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n},initialState);\n\n// Selectors\nconst getQueries = state => state.maintenanceList.queries;\nconst getUploadFile = state => state.maintenanceList.upload_file;\nconst getLang = state => {\n return {\n lang: state.auth.language===\"en\" ? \"en-US\" : \"ja-JP\"\n }\n};\n\n// Sagas\nfunction* handleSearchMaintenanceList(context) {\n while(true){\n const action = yield take(SEARCH_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchList, queries);\n if(payload) {\n yield put(searchSuccess(payload));\n } else {\n yield put(searchFailure('error'));\n }\n }\n}\n\nfunction* handlePagingMaintenanceList(context) {\n while(true){\n const action = yield take(PAGING_REQUEST);\n const queries = yield select(getQueries);\n const payload = yield call(searchList, queries);\n if(payload) {\n yield put(pagingSuccess(payload));\n } else {\n yield put(pagingFailure('error'));\n }\n }\n}\n\nfunction* handleUploadCsv(context) {\n while(true) {\n const action = yield take(UPLOAD_CSV_REQUEST);\n const uploadFile = yield select(getUploadFile);\n const payload = yield call(uploadCsv, uploadFile);\n if(!!payload && payload.status == 200) {\n yield put(uploadCsvSuccess(payload));\n yield put(messageModule.showMessage(\n {type: 'success', content: t('upload_countries_csv_success')}\n ));\n } else if (!!payload && payload.status >= 400) {\n yield put(uploadCsvFailed('error'));\n yield put(messageModule.showMessage(\n {type: 'error', content: t('file_format_is_different')}\n ));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: t('upload_countries_csv_failed')}\n ));\n }\n }\n}\n\nfunction* handleExportCsv(context){\n while(true){\n const action = yield take(EXPORT_CSV_REQUEST);\n const lang = yield select(getLang);\n const payload = yield call(exportCsv, {\n ...action.payload,\n ...lang\n });\n if(payload) {\n yield put(exportCsvSuccess(payload));\n }else{\n yield put(exportCsvFailed('error'));\n }\n }\n}\n\nfunction* handleMenuSelected(context){\n while(true){\n yield take(MENU_SELECTED);\n const queries = yield select(getQueries);\n yield call(context.history.push, '/maintenance_list');\n }\n}\n\nfunction* handlePageChanged(context) {\n while(true){\n yield take(PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(pagingRequest(queries));\n }\n}\n\nfunction* handlePerPageChanged(context) {\n while(true){\n yield take(PER_PAGE_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction * handleSortChanged(context) {\n while(true){\n yield take(SORT_CHANGED);\n const queries = yield select(getQueries);\n yield put(searchRequest(queries));\n }\n}\n\nfunction* handleDownloadRequest(context) {\n while(true) {\n const action = yield take(DOWNLOAD_REQUEST);\n const payload = yield call(downloadFile, action.payload);\n if(payload) {\n yield put(downloadSuccess(payload));\n } else {\n yield put(downloadFailed('error'));\n }\n }\n}\n\nexport const sagas = [\n handleSearchMaintenanceList,\n handlePagingMaintenanceList,\n handleMenuSelected,\n handlePageChanged,\n handlePerPageChanged,\n handleSortChanged,\n handleUploadCsv,\n handleDownloadRequest,\n handleExportCsv,\n];\n","//Ducks\nimport { createAction, handleActions } from 'redux-actions';\nimport { call, put, take, select } from 'redux-saga/effects';\n\nimport { login, adminLogin, refreshLogin, getAccessToken, getAdminAccessToken } from '../api';\nimport i18next from 'i18next';\n\nimport * as maintenanceListModule from './maintenanceList';\nimport * as messageModule from '../message';\n//import { EU_COUNTRY_IDS, UK_COUNTRY_IDS, US_COUNTRY_IDS } from '../../constants/maintenanceTypes';\n\n//Actions\nconst LOGIN_REQUEST = 'bmm/maintenanceAuth/LOGIN_REQUEST';\nconst LOGIN_SUCCESS = 'bmm/maintenanceAuth/LOGIN_SUCCESS';\nconst LOGIN_FAILED = 'bmm/maintenanceAuth/LOGIN_FAILED';\nconst ADMIN_LOGIN_REQUEST = 'bmm/maintenanceAuth/ADMIN_LOGIN_REQUEST';\nconst ADMIN_LOGIN_SUCCESS = 'bmm/maintenanceAuth/ADMIN_LOGIN_SUCCESS';\nconst ADMIN_LOGIN_FAILED = 'bmm/maintenanceAuth/ADMIN_LOGIN_FAILED';\nconst REFRESH_REQUEST = 'bmm/maintenanceAuth/REFRESH_REQUEST';\nconst REFRESH_SUCCESS = 'bmm/maintenanceAuth/REFRESH_SUCCESS';\nconst REFRESH_FAILED = 'bmm/maintenanceAuth/REFRESH_FAILED';\nconst AUTO_LOGIN_REQUEST = 'bmm/maintenanceAuth/AUTO_LOGIN_REQUEST';\nconst AUTO_LOGIN_SUCCESS = 'bmm/maintenanceAuth/AUTO_LOGIN_SUCCESS';\nconst AUTO_LOGIN_FAILED = 'bmm/maintenanceAuth/AUTO_LOGIN_FAILED';\nconst AUTO_LOGIN_STOPPED = 'bmm/maintenanceAuth/AUTO_LOGIN_STOPPED';\nconst AUTO_ADMIN_LOGIN_REQUEST = 'bmm/maintenanceAuth/AUTO_ADMIN_LOGIN_REQUEST';\nconst AUTO_ADMIN_LOGIN_SUCCESS = 'bmm/maintenanceAuth/AUTO_ADMIN_LOGIN_SUCCESS';\nconst AUTO_ADMIN_LOGIN_FAILED = 'bmm/maintenanceAuth/AUTO_ADMIN_LOGIN_FAILED';\nconst AUTO_ADMIN_LOGIN_STOPPED = 'bmm/maintenanceAuth/AUTO_ADMIN_LOGIN_STOPPED';\nconst LOGOUT = 'bmm/maintenanceAuth/LOGOUT';\nconst CHANGE_LANGUAGE = 'bmm/maintenanceAuth/CHANGE_LANGUAGE';\nconst FORM_CHANGED = 'bmm/maintenanceAuth/FORM_CHANGED';\n\n//Action Creators\nexport const loginRequest = createAction(LOGIN_REQUEST);\nexport const loginSuccess = createAction(LOGIN_SUCCESS);\nexport const loginFailed = createAction(LOGIN_FAILED);\nexport const adminLoginRequest = createAction(ADMIN_LOGIN_REQUEST);\nexport const adminLoginSuccess = createAction(ADMIN_LOGIN_SUCCESS);\nexport const adminLoginFailed = createAction(ADMIN_LOGIN_FAILED);\nexport const refreshRequest = createAction(REFRESH_REQUEST);\nexport const refreshSuccess = createAction(REFRESH_SUCCESS);\nexport const refreshFailed = createAction(REFRESH_FAILED);\nexport const autoLoginRequest = createAction(AUTO_LOGIN_REQUEST);\nexport const autoLoginSuccess = createAction(AUTO_LOGIN_SUCCESS);\nexport const autoLoginFailed = createAction(AUTO_LOGIN_FAILED);\nexport const autoLoginStopped = createAction(AUTO_LOGIN_STOPPED);\nexport const autoAdminLoginRequest = createAction(AUTO_ADMIN_LOGIN_REQUEST);\nexport const autoAdminLoginSuccess = createAction(AUTO_ADMIN_LOGIN_SUCCESS);\nexport const autoAdminLoginFailed = createAction(AUTO_ADMIN_LOGIN_FAILED);\nexport const autoAdminLoginStopped = createAction(AUTO_ADMIN_LOGIN_STOPPED);\nexport const logout = createAction(LOGOUT);\nexport const changeLanguage = createAction(CHANGE_LANGUAGE);\nexport const formChanged = createAction(FORM_CHANGED);\n\n//initialState\nconst initialState = {\n isLoading: false,\n isLoggedIn: false, //ログイン中かどうか\n account: {\n user_name: '',\n country_id: '', //国ID\n is_superuser: false, //管理者かどうか\n },\n language: '', //状態変化がないと画面更新が走らない\n form: {\n username: '',\n password: '',\n }\n}\n\nexport default handleActions({\n [LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [REFRESH_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [REFRESH_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [REFRESH_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [AUTO_ADMIN_LOGIN_REQUEST]: (state, action) => {\n return {\n ...state,\n isLoading: true\n }\n },\n [AUTO_ADMIN_LOGIN_SUCCESS]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: true,\n account: action.payload,\n }\n },\n [AUTO_ADMIN_LOGIN_FAILED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n isLoggedIn: false,\n account: initialState.account,\n loginForm: {\n ...state.loginForm,\n password: '',\n }\n }\n },\n [AUTO_ADMIN_LOGIN_STOPPED]: (state, action) => {\n return {\n ...state,\n isLoading: false,\n }\n },\n [LOGOUT]: (state, action) => {\n return initialState;\n },\n [CHANGE_LANGUAGE]: (state, action) => {\n i18next.changeLanguage(action.payload);\n return {\n ...state,\n language: action.payload,\n }\n },\n [FORM_CHANGED]: (state, action) => {\n return {\n ...state,\n form: {\n ...state.form,\n [action.payload.key]: action.payload.value,\n }\n }\n },\n},initialState);\n\n//Selectors\n\n//ログインフォームデータ取得\nconst getLoginForm = state => state.maintenanceAuth.form;\nconst getIsLoggedIn = state => state.maintenanceAuth.isLoggedIn;\nconst getIsSuperuser = state => state.maintenanceAuth.account.is_superuser;\nconst getQueries = state => state.maintenanceList.queries;\n\n//Sagas\nfunction *handleLoginRequest(context) {\n while(true){\n yield take(LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(login, loginForm);\n if(payload) {\n yield put(loginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(loginFailed());\n }\n }\n}\n\nfunction *handleLoginSuccess(context) {\n while(true){\n const action = yield take(LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'maintenance');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n yield setFileTypeByCountryId(account.country_id);\n\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/maintenance_list');\n }\n }\n}\n\nfunction *handleAdminLoginRequest(context) {\n while(true){\n yield take(ADMIN_LOGIN_REQUEST);\n const loginForm = yield select(getLoginForm);\n const payload = yield call(adminLogin, loginForm);\n if(payload) {\n yield put(adminLoginSuccess(payload));\n } else {\n yield put(messageModule.showMessage(\n {type: 'error', content: 'Login Failed.'}\n ));\n yield put(adminLoginFailed());\n }\n }\n}\n\nfunction *handleAdminLoginSuccess(context) {\n while(true){\n const action = yield take(ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'maintenance');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield call(context.history.push, '/maintenance_list');\n }\n }\n}\n\nfunction *handleRefreshRequest(context) {\n while(true){\n yield take(REFRESH_REQUEST);\n const payload = yield call(refreshLogin);\n if(payload) {\n yield put(refreshSuccess(payload));\n } else {\n yield put(loginFailed());\n yield call(context.history.push, '/maintenance_login');\n }\n }\n}\n\nfunction *handleRefreshSuccess(context) {\n while(true){\n const action = yield take(REFRESH_SUCCESS);\n const account = action.payload;\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n yield put(changeLanguage(lang));\n */\n }\n}\n\nfunction *handleAutoLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoLoginStopped());\n }\n else {\n //yield put(maintenanceListModule.menuSelected({type: action.payload}));\n const payload = yield call(getAccessToken);\n if(payload) {\n yield put(autoLoginSuccess(payload));\n } else {\n yield put(autoLoginFailed());\n yield call(context.history.push, '/maintenance_login');\n }\n }\n }\n}\n\nfunction *handleAutoLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'maintenance');\n localStorage.setItem('isAdmin', 'false');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n yield setFileTypeByCountryId(account.country_id);\n\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(maintenanceListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/maintenance_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\nfunction *handleAutoAdminLoginRequest(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_REQUEST);\n const isLoggedIn = yield select(getIsLoggedIn);\n\n if(isLoggedIn){\n yield put(autoAdminLoginStopped());\n }\n else {\n const payload = yield call(getAdminAccessToken, action.payload);\n if(payload) {\n yield put(autoAdminLoginSuccess(payload));\n } else {\n yield put(autoAdminLoginFailed());\n yield call(context.history.push, '/maintenance_login/admin');\n }\n }\n }\n}\n\nfunction *handleAutoAdminLoginSuccess(context) {\n while(true){\n const action = yield take(AUTO_ADMIN_LOGIN_SUCCESS);\n localStorage.setItem('loginType', 'maintenance');\n localStorage.setItem('isAdmin', 'true');\n\n const account = action.payload;\n //国IDが999(共栄社) と153(日本)以外は英語にする\n /*\n const lang = (account && account.country_id\n && (account.country_id!==999 && account.country_id!==153)) ? 'en': 'ja';\n */\n if (account.is_superuser) {\n yield call(context.history.push, '/');\n } else {\n yield put(maintenanceListModule.searchRequest(yield select(getQueries)));\n yield call(context.history.push, '/maintenance_list');\n }\n //yield put(changeLanguage(lang));\n }\n}\n\n\nfunction *handleLogout(context) {\n while(true) {\n const action = yield take(LOGOUT);\n const isAdmin = action.payload;\n //ローカルストレージのToken削除\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n //オンラインギャラリーのCookie削除\n document.cookie = \"CAKEPHP=; path=/; max-age=0\";\n //yield put(changeLanguage(initialState.language));\n\n if(isAdmin) {\n yield call(context.history.push, '/maintenance_login/admin');\n }\n else {\n yield call(context.history.push, '/maintenance_login');\n }\n }\n}\n\n\n/**\n * ログインユーザーの国に応じてファイル種別の初期チェック状態を切り替える\n */\nfunction *setFileTypeByCountryId(countryId) {\n /*\n if (US_COUNTRY_IDS.includes(countryId)) {\n yield put(maintenanceListModule.fileTypeChanged({key: \"US\", value: true}));\n yield put(maintenanceListModule.fileTypeChanged({key: \"UK\", value: false}));\n yield put(maintenanceListModule.fileTypeChanged({key: \"EU\", value: false}));\n }\n else if (UK_COUNTRY_IDS.includes(countryId)) {\n yield put(maintenanceListModule.fileTypeChanged({key: \"US\", value: false}));\n yield put(maintenanceListModule.fileTypeChanged({key: \"UK\", value: true}));\n yield put(maintenanceListModule.fileTypeChanged({key: \"EU\", value: true}));\n }\n else if (EU_COUNTRY_IDS.includes(countryId)) {\n yield put(maintenanceListModule.fileTypeChanged({key: \"US\", value: false}));\n yield put(maintenanceListModule.fileTypeChanged({key: \"UK\", value: false}));\n yield put(maintenanceListModule.fileTypeChanged({key: \"EU\", value: true}));\n }\n */\n}\n\n// Sagas\nexport const sagas = [\n handleLoginRequest,\n handleLoginSuccess,\n handleAdminLoginRequest,\n handleAdminLoginSuccess,\n handleRefreshRequest,\n handleRefreshSuccess,\n handleAutoLoginRequest,\n handleAutoLoginSuccess,\n handleAutoAdminLoginRequest,\n handleAutoAdminLoginSuccess,\n handleLogout,\n]\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { channel } from 'redux-saga';\r\nimport { call, put, take, select } from 'redux-saga/effects';\r\nimport {t} from 'i18next';\r\n\r\nimport * as countriesAction from '../countries';\r\nimport * as categoriesAction from '../categories';\r\nimport * as modelsAction from '../models';\r\nimport * as messageModule from '../message';\r\nimport * as confirmModule from '../confirm';\r\n\r\nimport { fetchItem, postNewItem, postUpgradeItem, putItem, deleteItem } from '../api/maintenance';\r\nimport { checkFile } from '../api/common';\r\n\r\nimport * as formTypes from '../../constants/formTypes';\r\nimport * as fileTypes from '../../constants/fileTypes';\r\n\r\nimport fileTitle from '../../constants/fileTitle';\r\n\r\n// Initial State\r\nconst initialState = {\r\n activeStep: 0,\r\n formType: null,\r\n hasFormOpened: false,\r\n isLoading: false,\r\n isUploading: false,\r\n isDeleting: false,\r\n file: null,\r\n changeLogFile: null,\r\n upgradeTargetId: null, //アップグレード対象ID\r\n isSerialEditable: false,\r\n maintenance: {\r\n id: null, //マニュアルID\r\n file_name: '', //ファイル名\r\n file_type: '', //ファイルタイプ\r\n change_log_file_name: '', //変更履歴ファイル名\r\n version: '0.0.0', //バージョン\r\n title_ja: '', //日本語タイトル\r\n title_en: '', //英語タイトル\r\n destination: '', //仕向\r\n language: '', //言語\r\n binding: '', //綴じ\r\n form_size: '', //用紙サイズ\r\n page_num: null, //ページ数\r\n overview_ja: '', //日本語概要\r\n overview_en: '', //英語概要\r\n evapor: '', //エバポ保証声明書\r\n eu_declaration: '', //EU適合宣言\r\n display: true, //表示させるかどうか\r\n is_allowed_online_document: true, //マニュアル参照システム表示するかどうか\r\n },\r\n new_serials:[], //新規機番データ\r\n serials:[], //過去機番データ\r\n models: [], //選択中機種\r\n countries:[], //国権限\r\n categories:[], //機種カテゴリ\r\n editable_max_version: null, //編集時の最大バージョン\r\n}\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/maintenanceForm/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/maintenanceForm/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/maintenanceForm/FETCH_FAILED';\r\nconst UPLOAD_REQUEST = 'bmm/maintenanceForm/UPLOAD_REQUEST';\r\nconst UPLOAD_SUCCESS = 'bmm/maintenanceForm/UPLOAD_SUCCESS';\r\nconst UPLOAD_FAILED = 'bmm/maintenanceForm/UPLOAD_FAILED';\r\nconst POST_NEW_REQUEST = 'bmm/maintenanceForm/POST_NEW_REQUEST';\r\nconst POST_NEW_SUCCESS = 'bmm/maintenanceForm/POST_NEW_SUCCESS';\r\nconst POST_NEW_FAILED = 'bmm/maintenanceForm/POST_NEW_FAILED';\r\nconst POST_UPGRADE_REQUEST = 'bmm/maintenanceForm/POST_UPGRADE_REQUEST';\r\nconst POST_UPGRADE_SUCCESS = 'bmm/maintenanceForm/POST_UPGRADE_SUCCESS';\r\nconst POST_UPGRADE_FAILED = 'bmm/maintenanceForm/POST_UPGRADE_FAILED';\r\nconst PUT_REQUEST = 'bmm/maintenanceForm/PUT_MANUAL';\r\nconst PUT_SUCCESS = 'bmm/maintenanceForm/PUT_SUCCESS';\r\nconst PUT_FAILED = 'bmm/maintenanceForm/PUT_FAILED';\r\nconst DELETE_REQUEST = 'bmm/maintenanceForm/DELETE_REQUEST';\r\nconst DELETE_SUCCESS = 'bmm/maintenanceForm/DELETE_SUCCESS';\r\nconst DELETE_FAILED = 'bmm/maintenanceForm/DELETE_FAILED';\r\nconst OPEN_NEW = 'bmm/maintenanceForm/OPEN_NEW';\r\nconst OPEN_EDIT = 'bmm/maintenanceForm/OPEN_EDIT';\r\nconst OPEN_UPGRADE = 'bmm/maintenanceForm/OPEN_UPGRADE';\r\nconst INPUT_CHANGED = 'bmm/maintenanceForm/INPUT_CHANGED';\r\nconst RESET_FORM = 'bmm/maintenanceForm/RESET_FORM';\r\nconst STEP_NEXT_REQUEST = 'bmm/maintenanceForm/STEP_NEXT_REQUEST';\r\nconst STEP_NEXT = 'bmm/maintenanceForm/STEP_NEXT';\r\nconst STEP_BACK = 'bmm/maintenanceForm/STEP_BACK';\r\nconst STEP_RESET = 'bmm/maintenanceForm/STEP_RESET';\r\nconst BACK_TO_LIST = 'bmm/maintenanceForm/BACK_TO_LIST';\r\nconst FILE_SELECTED = 'bmm/maintenanceForm/FILE_SELECTED';\r\nconst FILE_SELECTED_SUCCESS = 'bmm/maintenanceForm/FILE_SELECTED_SUCCESS';\r\nconst FILE_SELECTED_FAILED = 'bmm/maintenanceForm/FILE_SELECTED_FAILED';\r\nconst CHANGE_LOG_FILE_SELECTED = 'bmm/maintenanceForm/CHANGE_LOG_FILE_SELECTED';\r\nconst CHANGE_LOG_FILE_SUCCESS = 'bmm/maintenanceForm/CHANGE_LOG_FILE_SUCCESS';\r\nconst CHANGE_LOG_FILE_FAILED = 'bmm/maintenanceForm/CHANGE_LOG_FILE_FAILED';\r\nconst SERIAL_CHANGED = 'bmm/maualForm/SERIAL_CHANGED';\r\nconst PAST_SERIAL_CHANGED = 'bmm/maintenanceForm/PAST_SERIAL_CHANGED';\r\nconst CATEGORIES_SELECTED = 'bmm/maintenanceForm/CATEGORIES_SELECTED';\r\nconst MODELS_SELECTED = 'bmm/maintenanceForm/MODELS_SELECTED';\r\nconst COUNTRIES_SELECTED = 'bmm/maintenanceForm/COUNTRIES_SELECTED';\r\nconst RESET_MANUAL = 'bmm/maintenanceForm/RESET_MANUAL';\r\nconst PREPARE_UPGRADE = 'bmm/maintenanceForm/PREPARE_UPGRADE';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\nexport const uploadRequest = createAction(UPLOAD_REQUEST);\r\nexport const uploadSuccess = createAction(UPLOAD_SUCCESS);\r\nexport const uploadFailed = createAction(UPLOAD_FAILED);\r\nexport const postNewRequest = createAction(POST_NEW_REQUEST);\r\nexport const postNewSuccess = createAction(POST_NEW_SUCCESS);\r\nexport const postNewFailed = createAction(POST_NEW_FAILED);\r\nexport const postUpgradeRequest = createAction(POST_UPGRADE_REQUEST);\r\nexport const postUpgradeSuccess = createAction(POST_UPGRADE_SUCCESS);\r\nexport const postUpgradeFailed = createAction(POST_UPGRADE_FAILED);\r\nexport const putRequest = createAction(PUT_REQUEST);\r\nexport const putSuccess = createAction(PUT_SUCCESS);\r\nexport const putFailed = createAction(PUT_FAILED);\r\nexport const deleteRequest = createAction(DELETE_REQUEST);\r\nexport const deleteSuccess = createAction(DELETE_SUCCESS);\r\nexport const deleteFailed = createAction(DELETE_FAILED);\r\nexport const inputChanged = createAction(INPUT_CHANGED);\r\nexport const resetForm = createAction(RESET_FORM);\r\nexport const openNew = createAction(OPEN_NEW);\r\nexport const openEdit = createAction(OPEN_EDIT);\r\nexport const openUpgrade = createAction(OPEN_UPGRADE);\r\nexport const stepNextRequest = createAction(STEP_NEXT_REQUEST);\r\nexport const stepNext = createAction(STEP_NEXT);\r\nexport const stepBack = createAction(STEP_BACK);\r\nexport const stepReset = createAction(STEP_RESET);\r\nexport const backToList = createAction(BACK_TO_LIST);\r\nexport const fileSelected = createAction(FILE_SELECTED);\r\nexport const fileSelectedSuccess = createAction(FILE_SELECTED_SUCCESS);\r\nexport const fileSelectedFailed = createAction(FILE_SELECTED_FAILED);\r\nexport const changeLogFileSelected = createAction(CHANGE_LOG_FILE_SELECTED);\r\nexport const changeLogFileSuccess = createAction(CHANGE_LOG_FILE_SUCCESS);\r\nexport const changeLogFileFailed = createAction(CHANGE_LOG_FILE_FAILED);\r\nexport const serialChanged = createAction(SERIAL_CHANGED);\r\nexport const pastSerialChanged = createAction(PAST_SERIAL_CHANGED);\r\nexport const categoriesSelected = createAction(CATEGORIES_SELECTED);\r\nexport const modelsSelected = createAction(MODELS_SELECTED);\r\nexport const countriesSelected = createAction(COUNTRIES_SELECTED);\r\nexport const resetMaintenance = createAction(RESET_MANUAL);\r\nexport const prepareUpgrade = createAction(PREPARE_UPGRADE);\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n maintenance: action.payload.maintenance,\r\n new_serials: [],\r\n serials: action.payload.serials,\r\n models: action.payload.models,\r\n countries: action.payload.countries,\r\n categories: action.payload.categories,\r\n isSerialEditable: false, //for edit\r\n editable_max_version: action.payload.editable_max_version,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true\r\n }\r\n },\r\n [UPLOAD_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_NEW_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_UPGRADE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [PUT_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n }\r\n },\r\n [DELETE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [OPEN_NEW]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.NEW,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_EDIT]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.EDIT,\r\n isSerialEditable: false,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_UPGRADE]: (state, action) => {\r\n return {\r\n ...initialState,\r\n upgradeTargetId: action.payload,\r\n formType: formTypes.UPGRADE,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [RESET_FORM]: (state, action) => {\r\n return initialState\r\n },\r\n [STEP_NEXT]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep + 1\r\n }\r\n },\r\n [STEP_BACK]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep - 1\r\n }\r\n },\r\n [STEP_RESET]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: 0\r\n }\r\n },\r\n [INPUT_CHANGED]: (state, action) => {\r\n return {\r\n ...state,\r\n maintenance: {\r\n ...state.maintenance,\r\n [action.payload.key]: action.payload.value,\r\n }\r\n }\r\n },\r\n [SERIAL_CHANGED]: (state, action) => {\r\n const { modelId, key, value } = action.payload;\r\n const maxVersion = Math.max(...state.serials.map(m=>getRelativeVer(m.version)));\r\n return {\r\n ...state,\r\n new_serials: state.new_serials.map(data => {\r\n if(data.model_id === modelId){\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data;\r\n }),\r\n serials: state.serials.map(data => {\r\n if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial != value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: value-1,\r\n }\r\n }else if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial == value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: '99999'\r\n }\r\n }\r\n return data;\r\n }),\r\n }\r\n },\r\n [PAST_SERIAL_CHANGED]: (state, action) => {\r\n const { maintenanceId, modelId, key, value } = action.payload;\r\n return {\r\n ...state,\r\n serials: state.serials.map(data => {\r\n if(data.maintenance_id === maintenanceId && data.model_id === modelId) {\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data\r\n }),\r\n }\r\n },\r\n [FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [FILE_SELECTED_SUCCESS]: (state, action) => {\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n const fileType = fileName.substring(8,10).replace(/-/g,'');\r\n\r\n const { categories } = state;\r\n var category = '';\r\n categories.forEach( x => {\r\n if(modelName.startsWith(x.category_code)){\r\n category=x.id;\r\n }\r\n })\r\n if(fileType!==fileTypes.FR) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n maintenance: {\r\n ...state.maintenance,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n }\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: file,\r\n maintenance: {\r\n ...state.maintenance,\r\n file_name: fileName,\r\n file_type: fileType,\r\n title_ja: fileTitle[fileType].title_ja,\r\n title_en: fileTitle[fileType].title_en,\r\n\r\n }\r\n }\r\n },\r\n [FILE_SELECTED_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n maintenance: {\r\n ...state.maintenance,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SUCCESS]: (state, action) => {\r\n const changeLogFile = action.payload;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n changeLogFile: changeLogFile,\r\n maintenance: {\r\n ...state.maintenance,\r\n change_log_file_name: changeLogFile.name,\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n changeLogFile: null,\r\n maintenance: {\r\n ...state.maintenance,\r\n change_log_file_name: '',\r\n }\r\n }\r\n },\r\n [CATEGORIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n categories: action.payload,\r\n }\r\n },\r\n [MODELS_SELECTED]: (state, action) => {\r\n const model_ids = action.payload || [];\r\n if(state.formType!==formTypes.EDIT){\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map(id => {\r\n return {\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n } else {\r\n if(!state.isSerialEditable) {\r\n const maxSerial = Math.max(...state.serials.map(m=>getRelativeVer(m.version)))\r\n const newSerials = state.serials.filter(x => getRelativeVer(x.version) === maxSerial);\r\n const serials = state.serials.filter(x => !newSerials.includes(x));\r\n return {\r\n ...state,\r\n models: newSerials.map(x => x.model_id),\r\n new_serials: newSerials,\r\n serials: serials,\r\n isSerialEditable: true,\r\n }\r\n } else {\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map( id => {\r\n return {\r\n maintenance_id: state.maintenance.id,\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n },\r\n [COUNTRIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n countries: action.payload\r\n }\r\n },\r\n [RESET_MANUAL]: (state, action) => {\r\n return {\r\n ...state,\r\n maintenance: initialState.maintenance,\r\n }\r\n },\r\n [PREPARE_UPGRADE]: (state, action) => {\r\n return {\r\n ...state,\r\n maintenance: {\r\n ...state.maintenance,\r\n file_name: '',\r\n change_log_file_name: '',\r\n file_type: null,\r\n title_ja: '',\r\n title_en: '',\r\n version: null,\r\n }\r\n }\r\n },\r\n},initialState);\r\n\r\n\r\n// Selectors\r\n//全カテゴリとモデルの取得\r\nconst getCategories = state => state.categories.data;\r\nconst getModels = state => state.models.data;\r\n\r\n//選択中カテゴリとモデルの取得\r\nconst getSelectedCategories = state => state.maintenanceForm.categories;\r\nconst getSelectedModels = state => state.maintenanceForm.models;\r\n\r\n//マニュアルフォームデータ取得\r\nconst getMaintenanceForm = state => state.maintenanceForm;\r\n\r\n//新規POST用データの取得\r\nconst getPostNewData = state => {\r\n return {\r\n maintenance: state.maintenanceForm.maintenance,\r\n categories: state.maintenanceForm.categories.map(item => { return { code: item}}),\r\n countries: state.maintenanceForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.maintenanceForm.new_serials,\r\n }\r\n};\r\n//アップグレード用データの取得\r\nconst getPostUpgradeData = state => {\r\n return {\r\n maintenance: state.maintenanceForm.maintenance,\r\n categories: state.maintenanceForm.categories.map(item => { return { code: item}}),\r\n countries: state.maintenanceForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.maintenanceForm.new_serials,\r\n serials: state.maintenanceForm.serials,\r\n }\r\n}\r\n//更新用データの取得\r\nconst getPutData = state => {\r\n return {\r\n maintenance: state.maintenanceForm.maintenance,\r\n categories: state.maintenanceForm.categories.map(item => {return {code: item}}),\r\n countries: state.maintenanceForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.maintenanceForm.new_serials,\r\n serials: state.maintenanceForm.serials,\r\n }\r\n}\r\n//マニュアルデータ取得\r\nconst getMaintenance = state => state.maintenanceForm.maintenance;\r\n//ファイルデータ取得\r\nconst getFile = state => state.maintenanceForm.file;\r\n//改訂履歴ファイルデータ取得\r\nconst getChangeLogFile = state => state.maintenanceForm.changeLogFile;\r\n//フォームタイプ取得\r\nconst getFormType = state => state.maintenanceForm.formType;\r\n//アップグレード対象ID取得\r\nconst getUpgradeTargetId = state => state.maintenanceForm.upgradeTargetId;\r\n//編集可能フラグの取得\r\nconst getIsSerialEditable = state => state.isSerialEditable;\r\n\r\n// Sagas\r\n\r\nfunction* handlePutSuccess(context) {\r\n while(true){\r\n yield take(PUT_SUCCESS);\r\n yield call(context.history.push, 'maintenance_list');\r\n }\r\n}\r\n\r\nfunction* handlePostNewSuccess(context) {\r\n while(true){\r\n yield take(POST_NEW_SUCCESS);\r\n yield call(context.history.push, 'maintenance_list');\r\n }\r\n}\r\nfunction* handlePostUpgradeSuccess(context) {\r\n while(true){\r\n yield take(POST_UPGRADE_SUCCESS);\r\n yield call(context.history.push, 'maintenance_list');\r\n }\r\n}\r\n\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedFile(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const maintenance = yield select(getMaintenance);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === maintenance.file_name) {\r\n //バリデーションを行わない\r\n yield put(fileSelectedSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(fileSelectedSuccess(file));\r\n }\r\n else {\r\n yield put(fileSelectedFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedFileFailed(context) {\r\n while(true){\r\n yield take(FILE_SELECTED_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n//ファイル選択成功アクションを待ち受ける\r\nfunction* handleSelectedFileSuccess(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED_SUCCESS);\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n\r\n const formType = yield select(getFormType);\r\n const maintenance = yield select(getMaintenance);\r\n //マニュアルが編集時かつ同一ファイル名の場合はカテゴリ変更しない\r\n if(formType === formTypes.EDIT \r\n && maintenance.file_name == fileName){\r\n return;\r\n }\r\n\r\n var category = '';\r\n const categories = yield select(getCategories) || [];\r\n categories.some( x => {\r\n if(modelName.startsWith(x.category_short_name)){\r\n category=x.id; //既存DBの構造上idではなくカテゴリ名を渡す\r\n return true;\r\n }\r\n });\r\n if (category) {\r\n yield put(categoriesSelected([category]))\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedChangeLogFile(context) {\r\n while(true){\r\n const action = yield take(CHANGE_LOG_FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const maintenance = yield select(getMaintenance);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === maintenance.change_log_file_name) {\r\n //バリデーションを行わない\r\n yield put(changeLogFileSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(changeLogFileSuccess(file));\r\n }\r\n else {\r\n yield put(changeLogFileFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedChangeLogFileFailed(context) {\r\n while(true){\r\n yield take(CHANGE_LOG_FILE_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n\r\n//マニュアルデータ取得アクションを待ち受ける\r\nfunction* handleFetchMaintenance(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchItem, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'))\r\n }\r\n }\r\n}\r\n\r\n//マニュアルデータ取得成功を待ち受ける\r\nfunction* handleFetchSuccess(context) {\r\n while(true) {\r\n const action = yield take(FETCH_SUCCESS);\r\n const formType = yield select(getFormType);\r\n\r\n if(formType===formTypes.UPGRADE){\r\n yield put(prepareUpgrade());\r\n }\r\n const categories = yield select(getSelectedCategories);\r\n const models = yield select(getSelectedModels);\r\n yield put(modelsSelected(models));\r\n yield put(categoriesSelected(categories))\r\n }\r\n}\r\n\r\n//マニュアル更新アクションを待ち受ける\r\nfunction* handlePutMaintenance(context) {\r\n while(true) {\r\n const action = yield take(PUT_REQUEST);\r\n const payload = yield call(putItem,\r\n action.payload.file,\r\n action.payload.putData,\r\n action.payload.changeLogFile,\r\n );\r\n if(payload) {\r\n yield put(putSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('put_success')}\r\n ));\r\n } else {\r\n yield put(putFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('put_failed')}\r\n ));\r\n yield call(context.history.push, 'maintenance_list');\r\n }\r\n }\r\n}\r\n\r\n\r\n//アップグレードアクションを待ち受ける\r\nfunction* handlePostUpgradeMaintenance(context) {\r\n while(true) {\r\n const action = yield take(POST_UPGRADE_REQUEST);\r\n const payload = yield call(postUpgradeItem,\r\n action.payload.upgradeTargetId,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.changeLogFile);\r\n if(payload) {\r\n yield put(postUpgradeSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_upgrade_success')}\r\n ));\r\n } else {\r\n yield put(postUpgradeFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_upgrade_failed')}\r\n ));\r\n yield call(context.history.push, 'maintenance_list');\r\n }\r\n }\r\n}\r\n\r\n//新規登録アクションを待ち受ける\r\nfunction* handlePostNewMaintenance(context) {\r\n while(true){\r\n const action = yield take(POST_NEW_REQUEST);\r\n const payload = yield call(postNewItem,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.changeLogFile);\r\n if(payload) {\r\n yield put(postNewSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_new_success')}\r\n ));\r\n } else {\r\n yield put(postNewFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_new_failed')}\r\n ));\r\n yield call(context.history.push, 'maintenance_list');\r\n }\r\n }\r\n}\r\n\r\n//フォーム(新規)表示アクションを待ち受ける\r\nfunction* handleOpenNewForm(context) {\r\n while(true){\r\n yield take(OPEN_NEW);\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'maintenance');\r\n }\r\n}\r\n\r\n//フォーム(アップグレード)表示アクションを待ち受ける\r\nfunction* handleOpenUpgradeForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_UPGRADE);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'maintenance');\r\n }\r\n}\r\n\r\n//フォーム(編集)表示アクションを待ち受ける\r\nfunction* handleOpenEditForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_EDIT);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'maintenance');\r\n }\r\n}\r\n\r\n\r\n//リストへ戻るためのアクションを待ち受ける\r\nfunction* handleBackToList(context) {\r\n while(true){\r\n yield take(BACK_TO_LIST);\r\n const confirmChannel = channel()\r\n\r\n yield put(confirmModule.showConfirm({\r\n title: t('confirm'),\r\n content: t('back_to_list_confirm'),\r\n actions: {\r\n ok: () => {\r\n context.history.push('maintenance_list');\r\n }\r\n }\r\n }))\r\n }\r\n}\r\n\r\n\r\n//マニュアル削除のアクションを待ち受ける\r\nfunction* handleDeleteMaintenance(context) {\r\n while(true) {\r\n const action = yield take(DELETE_REQUEST)\r\n const payload = yield call(deleteItem, action.payload)\r\n if(payload) {\r\n yield put(deleteSuccess());\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('delete_maintenance_success')}\r\n ));\r\n } else {\r\n yield put(deleteFailed());\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('delete_maintenance_failed')}\r\n ));\r\n }\r\n context.history.push('maintenance_list');\r\n }\r\n}\r\n\r\n\r\n//カテゴリ選択のアクションを待ち受ける\r\nfunction * handleCategoriesSelected(context) {\r\n while(true) {\r\n const action = yield take(CATEGORIES_SELECTED);\r\n\r\n //カテゴリ選択で紐づかなくなった機種を外す\r\n const categories = yield select(getCategories);\r\n const selectedCategories = yield select(getSelectedCategories);\r\n const selectedModels = yield select(getSelectedModels);\r\n const models = yield select(getModels);\r\n\r\n const isSerialEditable = yield select(getIsSerialEditable);\r\n const formType = yield select(getFormType);\r\n\r\n if((formType!==formTypes.EDIT && isSerialEditable) && ( categories && selectedCategories && selectedModels && models)) {\r\n const _selectedCategories = categories.filter(x => selectedCategories.includes(x.id));\r\n const _selectedModels = models.filter(x => selectedModels.includes(x.id) &&\r\n _selectedCategories.map(s => s.category_short_name).includes(x.category_code));\r\n yield put(modelsSelected(_selectedModels.map(x => { return x.id })));\r\n }\r\n\r\n // カテゴリに応じた機種一覧を取得する\r\n yield put(modelsAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\n//機種選択のアクションを待ち受ける\r\nfunction * handleModelsSelected(context) {\r\n while(true) {\r\n const action = yield take(MODELS_SELECTED);\r\n // 機種に応じた国一覧を取得する\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\nconst validateString = (str, maxLen, minLen=0) => {\r\n if (str && minLen <= str.length && str.length <= maxLen) {\r\n return true;\r\n }else {\r\n return false;\r\n }\r\n}\r\n\r\nconst validateNumber = (num, maxNum, minNum=0) => {\r\n if (num && minNum <= num && num <= maxNum ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * バージョン(xx.xx.xx)を比較可能な値に変換する\r\n */\r\nconst getRelativeVer = (x) => {\r\n const xSplit = String(x).split('.');\r\n const x1 = Number(xSplit[0]) || 0;\r\n const x2 = Number(xSplit[1]) || 0;\r\n const x3 = Number(xSplit[2]) || 0;\r\n return x1*100+x2*10+x3;\r\n}\r\n\r\n\r\n//各ステップの次へボタン押下のリクエストを待ち受ける(バリデーション)\r\n//[参考]複雑なフォームでなければ、Redux-FormやFormikを利用してバリデーションする\r\nfunction * handleStepNextRequest(context) {\r\n while (true) {\r\n const action = yield take(STEP_NEXT_REQUEST);\r\n const formType = yield select(getFormType);\r\n const maintenanceForm = yield select(getMaintenanceForm);\r\n const currentStep = maintenanceForm.activeStep;\r\n switch (currentStep) {\r\n case 0:\r\n if (maintenanceForm.maintenance.file_name !== '' &&\r\n maintenanceForm.maintenance.file_type !== '' &&\r\n maintenanceForm.maintenance.title_ja !== '' &&\r\n maintenanceForm.maintenance.title_en !== ''){\r\n yield put(stepNext())\r\n }else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_input_error')}\r\n ));\r\n }\r\n break;\r\n case 1:\r\n if (maintenanceForm.categories.length !== 0 &&\r\n maintenanceForm.new_serials.length !== 0 &&\r\n maintenanceForm.maintenance.version !== '') {\r\n const minVersion = Math.max(...maintenanceForm.serials.map(m=>getRelativeVer(m.version)))\r\n if(getRelativeVer(maintenanceForm.maintenance.version) <= minVersion){\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('version_range_error')}\r\n ));\r\n break;\r\n }\r\n if(maintenanceForm.editable_max_version &&\r\n (getRelativeVer(maintenanceForm.editable_max_version) <= getRelativeVer(maintenanceForm.maintenance.version))) {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('version_range_edit_error')}\r\n ));\r\n break;\r\n }\r\n yield put(stepNext())\r\n }else {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('model_input_error')}\r\n ));\r\n }\r\n break;\r\n case 2:\r\n if (maintenanceForm.serials.every(item => item.start_serial!==null && item.end_serial!==null)\r\n && maintenanceForm.new_serials.every(item => item.start_serial!==null && item.end_serial!==null)){\r\n if(maintenanceForm.serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )\r\n &&\r\n maintenanceForm.new_serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )) {\r\n yield put(stepNext())\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_range_error')}\r\n ));\r\n }\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_input_error')}\r\n ));\r\n }\r\n break;\r\n case 3:\r\n /* 国として(共栄社)のみとしたい場合は空となるため、バリデーションを外す\r\n if(maintenanceForm.countries.length !== 0) { //ページ数のバリデーションも後で追加\r\n */\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n switch (maintenanceForm.formType) {\r\n case formTypes.NEW:\r\n const file = yield select(getFile);\r\n const changeLogFile = yield select(getChangeLogFile);\r\n const postData = yield select(getPostNewData);\r\n yield put(postNewRequest({file: file, postData: postData, changeLogFile: changeLogFile }));\r\n //yield call(context.history.push, 'maintenance_list');\r\n break;\r\n case formTypes.UPGRADE:\r\n yield put(postUpgradeRequest({\r\n upgradeTargetId: yield select(getUpgradeTargetId),\r\n file: yield select(getFile),\r\n postData: yield select(getPostUpgradeData),\r\n changeLogFile: yield select(getChangeLogFile)\r\n }));\r\n //yield call(context.history.push, 'maintenance_list');\r\n break;\r\n case formTypes.EDIT:\r\n yield put(putRequest({\r\n file: yield select(getFile),\r\n putData: yield select(getPutData),\r\n changeLogFile: yield select(getChangeLogFile)\r\n }));\r\n //yield call(context.history.push, 'maintenance_list');\r\n default:\r\n break;\r\n }\r\n /*\r\n } else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('country_input_error')}\r\n ));\r\n }\r\n */\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handlePutSuccess,\r\n handlePostNewSuccess,\r\n handlePostUpgradeSuccess,\r\n handleSelectedFile,\r\n handleSelectedFileSuccess,\r\n handleSelectedFileFailed,\r\n handleSelectedChangeLogFile,\r\n handleSelectedChangeLogFileFailed,\r\n handleFetchMaintenance,\r\n handleFetchSuccess,\r\n handleOpenNewForm,\r\n handleOpenEditForm,\r\n handleOpenUpgradeForm,\r\n handleBackToList,\r\n handleModelsSelected,\r\n handleCategoriesSelected,\r\n handleStepNextRequest,\r\n handlePostNewMaintenance,\r\n handlePostUpgradeMaintenance,\r\n handlePutMaintenance,\r\n handleDeleteMaintenance,\r\n];\r\n","//Ducks\r\nimport { createAction, handleActions } from 'redux-actions';\r\nimport { channel } from 'redux-saga';\r\nimport { all, call, put, take, select } from 'redux-saga/effects';\r\nimport {t} from 'i18next';\r\n\r\nimport * as countriesAction from './countries';\r\nimport * as categoriesAction from './categories';\r\nimport * as modelsAction from './models';\r\nimport * as manualListAction from './manualList';\r\nimport * as messageModule from './message';\r\nimport * as confirmModule from './confirm';\r\n\r\nimport { checkFile, fetchManual, fetchCountries, fetchCategories,\r\n fetchModels, postNewManual, postUpgradeManual, putManual, deleteManual } from './api';\r\nimport * as formTypes from '../constants/formTypes';\r\nimport * as fileTypes from '../constants/fileTypes';\r\n\r\nimport fileTitle from '../constants/fileTitle';\r\nimport { yellow } from '@material-ui/core/colors';\r\n\r\n// Initial State\r\nconst initialState = {\r\n activeStep: 0,\r\n formType: null,\r\n hasFormOpened: false,\r\n isLoading: false,\r\n isUploading: false,\r\n isDeleting: false,\r\n file: null,\r\n changeLogFile: null,\r\n upgradeTargetId: null, //アップグレード対象ID\r\n isSerialEditable: false,\r\n manual: {\r\n id: null, //マニュアルID\r\n file_name: '', //ファイル名\r\n file_type: '', //ファイルタイプ\r\n change_log_file_name: '', //変更履歴ファイル名\r\n version: '', //バージョン\r\n title_ja: '', //日本語タイトル\r\n title_en: '', //英語タイトル\r\n destination: '', //仕向\r\n language: '', //言語\r\n binding: '', //綴じ\r\n form_size: '', //用紙サイズ\r\n page_num: null, //ページ数\r\n overview_ja: '', //日本語概要\r\n overview_en: '', //英語概要\r\n evapor: '', //エバポ保証声明書\r\n eu_declaration: '', //EU適合宣言\r\n display: true, //表示させるかどうか\r\n is_allowed_online_document: true, //マニュアル参照システム表示するかどうか\r\n },\r\n new_serials:[], //新規機番データ\r\n serials:[], //過去機番データ\r\n models: [], //選択中機種\r\n countries:[], //国権限\r\n categories:[], //機種カテゴリ\r\n editable_max_version: null, //編集時の最大バージョン\r\n}\r\n\r\n// Actions\r\nconst FETCH_REQUEST = 'bmm/manualForm/FETCH_REQUEST';\r\nconst FETCH_SUCCESS = 'bmm/manualForm/FETCH_SUCCESS';\r\nconst FETCH_FAILED = 'bmm/manualForm/FETCH_FAILED';\r\nconst UPLOAD_REQUEST = 'bmm/manualForm/UPLOAD_REQUEST';\r\nconst UPLOAD_SUCCESS = 'bmm/manualForm/UPLOAD_SUCCESS';\r\nconst UPLOAD_FAILED = 'bmm/manualForm/UPLOAD_FAILED';\r\nconst POST_NEW_REQUEST = 'bmm/manualForm/POST_NEW_REQUEST';\r\nconst POST_NEW_SUCCESS = 'bmm/manualForm/POST_NEW_SUCCESS';\r\nconst POST_NEW_FAILED = 'bmm/manualForm/POST_NEW_FAILED';\r\nconst POST_UPGRADE_REQUEST = 'bmm/manualForm/POST_UPGRADE_REQUEST';\r\nconst POST_UPGRADE_SUCCESS = 'bmm/manualForm/POST_UPGRADE_SUCCESS';\r\nconst POST_UPGRADE_FAILED = 'bmm/manualForm/POST_UPGRADE_FAILED';\r\nconst PUT_REQUEST = 'bmm/manualForm/PUT_MANUAL';\r\nconst PUT_SUCCESS = 'bmm/manualForm/PUT_SUCCESS';\r\nconst PUT_FAILED = 'bmm/manualForm/PUT_FAILED';\r\nconst DELETE_REQUEST = 'bmm/manualForm/DELETE_REQUEST';\r\nconst DELETE_SUCCESS = 'bmm/manualForm/DELETE_SUCCESS';\r\nconst DELETE_FAILED = 'bmm/manualForm/DELETE_FAILED';\r\nconst OPEN_NEW = 'bmm/manualForm/OPEN_NEW';\r\nconst OPEN_EDIT = 'bmm/manualForm/OPEN_EDIT';\r\nconst OPEN_UPGRADE = 'bmm/manualForm/OPEN_UPGRADE';\r\nconst INPUT_CHANGED = 'bmm/manualForm/INPUT_CHANGED';\r\nconst RESET_FORM = 'bmm/manualForm/RESET_FORM';\r\nconst STEP_NEXT_REQUEST = 'bmm/manualForm/STEP_NEXT_REQUEST';\r\nconst STEP_NEXT = 'bmm/manualForm/STEP_NEXT';\r\nconst STEP_BACK = 'bmm/manualForm/STEP_BACK';\r\nconst STEP_RESET = 'bmm/manualForm/STEP_RESET';\r\nconst BACK_TO_LIST = 'bmm/manualForm/BACK_TO_LIST';\r\nconst FILE_SELECTED = 'bmm/manualForm/FILE_SELECTED';\r\nconst FILE_SELECTED_SUCCESS = 'bmm/manualForm/FILE_SELECTED_SUCCESS';\r\nconst FILE_SELECTED_FAILED = 'bmm/manualForm/FILE_SELECTED_FAILED';\r\nconst CHANGE_LOG_FILE_SELECTED = 'bmm/manualForm/CHANGE_LOG_FILE_SELECTED';\r\nconst CHANGE_LOG_FILE_SUCCESS = 'bmm/manualForm/CHANGE_LOG_FILE_SUCCESS';\r\nconst CHANGE_LOG_FILE_FAILED = 'bmm/manualForm/CHANGE_LOG_FILE_FAILED';\r\nconst SERIAL_CHANGED = 'bmm/maualForm/SERIAL_CHANGED';\r\nconst PAST_SERIAL_CHANGED = 'bmm/manualForm/PAST_SERIAL_CHANGED';\r\nconst CATEGORIES_SELECTED = 'bmm/manualForm/CATEGORIES_SELECTED';\r\nconst MODELS_SELECTED = 'bmm/manualForm/MODELS_SELECTED';\r\nconst COUNTRIES_SELECTED = 'bmm/manualForm/COUNTRIES_SELECTED';\r\nconst RESET_MANUAL = 'bmm/manualForm/RESET_MANUAL';\r\nconst PREPARE_UPGRADE = 'bmm/manualForm/PREPARE_UPGRADE';\r\n\r\n// Action Creators\r\nexport const fetchRequest = createAction(FETCH_REQUEST);\r\nexport const fetchSuccess = createAction(FETCH_SUCCESS);\r\nexport const fetchFailed = createAction(FETCH_FAILED);\r\nexport const uploadRequest = createAction(UPLOAD_REQUEST);\r\nexport const uploadSuccess = createAction(UPLOAD_SUCCESS);\r\nexport const uploadFailed = createAction(UPLOAD_FAILED);\r\nexport const postNewRequest = createAction(POST_NEW_REQUEST);\r\nexport const postNewSuccess = createAction(POST_NEW_SUCCESS);\r\nexport const postNewFailed = createAction(POST_NEW_FAILED);\r\nexport const postUpgradeRequest = createAction(POST_UPGRADE_REQUEST);\r\nexport const postUpgradeSuccess = createAction(POST_UPGRADE_SUCCESS);\r\nexport const postUpgradeFailed = createAction(POST_UPGRADE_FAILED);\r\nexport const putRequest = createAction(PUT_REQUEST);\r\nexport const putSuccess = createAction(PUT_SUCCESS);\r\nexport const putFailed = createAction(PUT_FAILED);\r\nexport const deleteRequest = createAction(DELETE_REQUEST);\r\nexport const deleteSuccess = createAction(DELETE_SUCCESS);\r\nexport const deleteFailed = createAction(DELETE_FAILED);\r\nexport const inputChanged = createAction(INPUT_CHANGED);\r\nexport const resetForm = createAction(RESET_FORM);\r\nexport const openNew = createAction(OPEN_NEW);\r\nexport const openEdit = createAction(OPEN_EDIT);\r\nexport const openUpgrade = createAction(OPEN_UPGRADE);\r\nexport const stepNextRequest = createAction(STEP_NEXT_REQUEST);\r\nexport const stepNext = createAction(STEP_NEXT);\r\nexport const stepBack = createAction(STEP_BACK);\r\nexport const stepReset = createAction(STEP_RESET);\r\nexport const backToList = createAction(BACK_TO_LIST);\r\nexport const fileSelected = createAction(FILE_SELECTED);\r\nexport const fileSelectedSuccess = createAction(FILE_SELECTED_SUCCESS);\r\nexport const fileSelectedFailed = createAction(FILE_SELECTED_FAILED);\r\nexport const changeLogFileSelected = createAction(CHANGE_LOG_FILE_SELECTED);\r\nexport const changeLogFileSuccess = createAction(CHANGE_LOG_FILE_SUCCESS);\r\nexport const changeLogFileFailed = createAction(CHANGE_LOG_FILE_FAILED);\r\nexport const serialChanged = createAction(SERIAL_CHANGED);\r\nexport const pastSerialChanged = createAction(PAST_SERIAL_CHANGED);\r\nexport const categoriesSelected = createAction(CATEGORIES_SELECTED);\r\nexport const modelsSelected = createAction(MODELS_SELECTED);\r\nexport const countriesSelected = createAction(COUNTRIES_SELECTED);\r\nexport const resetManual = createAction(RESET_MANUAL);\r\nexport const prepareUpgrade = createAction(PREPARE_UPGRADE);\r\n\r\n// Reducer\r\nexport default handleActions({\r\n [FETCH_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true\r\n }\r\n },\r\n [FETCH_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n manual: action.payload.manual,\r\n new_serials: [],\r\n serials: action.payload.serials,\r\n models: action.payload.models,\r\n countries: action.payload.countries,\r\n categories: action.payload.categories,\r\n isSerialEditable: false, //for edit\r\n editable_max_version: action.payload.editable_max_version,\r\n }\r\n },\r\n [FETCH_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true\r\n }\r\n },\r\n [UPLOAD_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [UPLOAD_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_NEW_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_NEW_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [POST_UPGRADE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [POST_UPGRADE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isUploading: true,\r\n }\r\n },\r\n [PUT_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [PUT_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_REQUEST]: (state, action) => {\r\n return {\r\n ...state,\r\n isDeleting: true,\r\n }\r\n },\r\n [DELETE_SUCCESS]: (state, action) => {\r\n return initialState\r\n },\r\n [DELETE_FAILED]: (state, action) => {\r\n return initialState\r\n },\r\n [OPEN_NEW]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.NEW,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_EDIT]: (state, action) => {\r\n return {\r\n ...initialState,\r\n formType: formTypes.EDIT,\r\n isSerialEditable: false,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [OPEN_UPGRADE]: (state, action) => {\r\n return {\r\n ...initialState,\r\n upgradeTargetId: action.payload,\r\n formType: formTypes.UPGRADE,\r\n hasFormOpened: true,\r\n }\r\n },\r\n [RESET_FORM]: (state, action) => {\r\n return initialState\r\n },\r\n [STEP_NEXT]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep + 1\r\n }\r\n },\r\n [STEP_BACK]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: state.activeStep - 1\r\n }\r\n },\r\n [STEP_RESET]: (state, action) => {\r\n return {\r\n ...state,\r\n activeStep: 0\r\n }\r\n },\r\n [INPUT_CHANGED]: (state, action) => {\r\n return {\r\n ...state,\r\n manual: {\r\n ...state.manual,\r\n [action.payload.key]: action.payload.value,\r\n }\r\n }\r\n },\r\n [SERIAL_CHANGED]: (state, action) => {\r\n const { modelId, key, value } = action.payload;\r\n const maxVersion = Math.max(...state.serials.map(m=>getRelativeVer(m.version)));\r\n return {\r\n ...state,\r\n new_serials: state.new_serials.map(data => {\r\n if(data.model_id === modelId){\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data;\r\n }),\r\n serials: state.serials.map(data => {\r\n if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial != value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: value-1,\r\n }\r\n }else if( key === 'start_serial'\r\n && data.model_id === modelId\r\n && data.is_end_editable\r\n && data.start_serial == value\r\n ) {\r\n return {\r\n ...data,\r\n end_serial: '99999'\r\n }\r\n }\r\n return data;\r\n }),\r\n }\r\n },\r\n [PAST_SERIAL_CHANGED]: (state, action) => {\r\n const { manualId, modelId, key, value } = action.payload;\r\n return {\r\n ...state,\r\n serials: state.serials.map(data => {\r\n if(data.manual_id === manualId && data.model_id === modelId) {\r\n return {\r\n ...data,\r\n [key]: value,\r\n }\r\n }\r\n return data\r\n }),\r\n }\r\n },\r\n [FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [FILE_SELECTED_SUCCESS]: (state, action) => {\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n const fileType = fileName.substring(8,10).replace(/-/g,'');\r\n\r\n const { categories } = state;\r\n var category = '';\r\n categories.forEach( x => {\r\n if(modelName.startsWith(x.category_code)){\r\n category=x.id;\r\n }\r\n })\r\n if(fileType!==fileTypes.UM && fileType!==fileTypes.PC\r\n && fileType!==fileTypes.PU && fileType!==fileTypes.SM) {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n manual: {\r\n ...state.manual,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n }\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: file,\r\n manual: {\r\n ...state.manual,\r\n file_name: fileName,\r\n file_type: fileType,\r\n title_ja: fileTitle[fileType].title_ja,\r\n title_en: fileTitle[fileType].title_en,\r\n\r\n }\r\n }\r\n },\r\n [FILE_SELECTED_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n file: null,\r\n manual: {\r\n ...state.manual,\r\n file_name: '',\r\n file_type: '',\r\n title_ja: '',\r\n title_en: '',\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n },\r\n [CHANGE_LOG_FILE_SUCCESS]: (state, action) => {\r\n const changeLogFile = action.payload;\r\n return {\r\n ...state,\r\n isLoading: false,\r\n changeLogFile: changeLogFile,\r\n manual: {\r\n ...state.manual,\r\n change_log_file_name: changeLogFile.name,\r\n }\r\n }\r\n },\r\n [CHANGE_LOG_FILE_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n changeLogFile: null,\r\n manual: {\r\n ...state.manual,\r\n change_log_file_name: '',\r\n }\r\n }\r\n },\r\n [CATEGORIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n categories: action.payload,\r\n }\r\n },\r\n [MODELS_SELECTED]: (state, action) => {\r\n const model_ids = action.payload || [];\r\n if(state.formType!==formTypes.EDIT){\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map(id => {\r\n return {\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n } else {\r\n if(!state.isSerialEditable) {\r\n const maxSerial = Math.max(...state.serials.map(m=>getRelativeVer(m.version)))\r\n const newSerials = state.serials.filter(x => getRelativeVer(x.version) === maxSerial);\r\n const serials = state.serials.filter(x => !newSerials.includes(x));\r\n return {\r\n ...state,\r\n models: newSerials.map(x => x.model_id),\r\n new_serials: newSerials,\r\n serials: serials,\r\n isSerialEditable: true,\r\n }\r\n } else {\r\n return {\r\n ...state,\r\n models: model_ids,\r\n new_serials: model_ids.map( id => {\r\n return {\r\n manual_id: state.manual.id,\r\n model_id: id,\r\n start_serial: null,\r\n end_serial: 99999,\r\n }\r\n })\r\n }\r\n }\r\n }\r\n },\r\n [COUNTRIES_SELECTED]: (state, action) => {\r\n return {\r\n ...state,\r\n countries: action.payload\r\n }\r\n },\r\n [RESET_MANUAL]: (state, action) => {\r\n return {\r\n ...state,\r\n manual: initialState.manual,\r\n }\r\n },\r\n [PREPARE_UPGRADE]: (state, action) => {\r\n return {\r\n ...state,\r\n manual: {\r\n ...state.manual,\r\n file_name: '',\r\n change_log_file_name: '',\r\n file_type: null,\r\n title_ja: '',\r\n title_en: '',\r\n version: null,\r\n }\r\n }\r\n },\r\n},initialState);\r\n\r\n\r\n// Selectors\r\n//全カテゴリとモデルの取得\r\nconst getCategories = state => state.categories.data;\r\nconst getModels = state => state.models.data;\r\n\r\n//選択中カテゴリとモデルの取得\r\nconst getSelectedCategories = state => state.manualForm.categories;\r\nconst getSelectedModels = state => state.manualForm.models;\r\n\r\n//マニュアルフォームデータ取得\r\nconst getManualForm = state => state.manualForm;\r\n\r\n//新規POST用データの取得\r\nconst getPostNewData = state => {\r\n return {\r\n manual: state.manualForm.manual,\r\n categories: state.manualForm.categories.map(item => { return { code: item}}),\r\n countries: state.manualForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.manualForm.new_serials,\r\n }\r\n};\r\n//アップグレード用データの取得\r\nconst getPostUpgradeData = state => {\r\n return {\r\n manual: state.manualForm.manual,\r\n categories: state.manualForm.categories.map(item => { return { code: item}}),\r\n countries: state.manualForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.manualForm.new_serials,\r\n serials: state.manualForm.serials,\r\n }\r\n}\r\n//更新用データの取得\r\nconst getPutData = state => {\r\n return {\r\n manual: state.manualForm.manual,\r\n categories: state.manualForm.categories.map(item => {return {code: item}}),\r\n countries: state.manualForm.countries.map(item => {return {code: item}}),\r\n new_serials: state.manualForm.new_serials,\r\n serials: state.manualForm.serials,\r\n }\r\n}\r\n//マニュアルデータ取得\r\nconst getManual = state => state.manualForm.manual;\r\n//ファイルデータ取得\r\nconst getFile = state => state.manualForm.file;\r\n//改訂履歴ファイルデータ取得\r\nconst getChangeLogFile = state => state.manualForm.changeLogFile;\r\n//フォームタイプ取得\r\nconst getFormType = state => state.manualForm.formType;\r\n//アップグレード対象ID取得\r\nconst getUpgradeTargetId = state => state.manualForm.upgradeTargetId;\r\n//編集可能フラグの取得\r\nconst getIsSerialEditable = state => state.isSerialEditable;\r\n\r\n// Sagas\r\n\r\nfunction* handlePutSuccess(context) {\r\n while(true){\r\n yield take(PUT_SUCCESS);\r\n yield call(context.history.push, 'manual_list');\r\n }\r\n}\r\n\r\nfunction* handlePostNewSuccess(context) {\r\n while(true){\r\n yield take(POST_NEW_SUCCESS);\r\n yield call(context.history.push, 'manual_list');\r\n }\r\n}\r\nfunction* handlePostUpgradeSuccess(context) {\r\n while(true){\r\n yield take(POST_UPGRADE_SUCCESS);\r\n yield call(context.history.push, 'manual_list');\r\n }\r\n}\r\n\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedFile(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const manual = yield select(getManual);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === manual.file_name) {\r\n //バリデーションを行わない\r\n yield put(fileSelectedSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(fileSelectedSuccess(file));\r\n }\r\n else {\r\n yield put(fileSelectedFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedFileFailed(context) {\r\n while(true){\r\n yield take(FILE_SELECTED_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n//ファイル選択成功アクションを待ち受ける\r\nfunction* handleSelectedFileSuccess(context) {\r\n while(true){\r\n const action = yield take(FILE_SELECTED_SUCCESS);\r\n const file = action.payload;\r\n const fileName = file.name;\r\n const modelName = fileName.substring(0,8).replace(/-/g,'');\r\n\r\n const formType = yield select(getFormType);\r\n const manual = yield select(getManual);\r\n //マニュアルが編集時かつ同一ファイル名の場合はカテゴリ変更しない\r\n if(formType === formTypes.EDIT \r\n && manual.file_name == fileName){\r\n return;\r\n }\r\n\r\n var category = '';\r\n const categories = yield select(getCategories) || [];\r\n categories.some( x => {\r\n if(modelName.startsWith(x.category_short_name)){\r\n category=x.id; //既存DBの構造上idではなくカテゴリ名を渡す\r\n return true;\r\n }\r\n });\r\n if (category) {\r\n yield put(categoriesSelected([category]))\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択アクションを待ち受ける\r\nfunction* handleSelectedChangeLogFile(context) {\r\n while(true){\r\n const action = yield take(CHANGE_LOG_FILE_SELECTED);\r\n const file = action.payload;\r\n const formType = yield select(getFormType);\r\n const manual = yield select(getManual);\r\n\r\n //編集かつファイル名が前と同じ場合はチェックしない\r\n if(formType === formTypes.EDIT && file.name === manual.change_log_file_name) {\r\n //バリデーションを行わない\r\n yield put(changeLogFileSuccess(file));\r\n \r\n yield put(messageModule.showMessage(\r\n {type: 'info', content: t('put_same_file')}\r\n ));\r\n } else{\r\n //同一ファイル名が既に存在するかチェックする\r\n const payload = yield call(checkFile, file.name);\r\n if(payload) {\r\n yield put(changeLogFileSuccess(file));\r\n }\r\n else {\r\n yield put(changeLogFileFailed());\r\n }\r\n }\r\n }\r\n}\r\n\r\n//ファイル選択失敗アクションを待ち受ける\r\nfunction* handleSelectedChangeLogFileFailed(context) {\r\n while(true){\r\n yield take(CHANGE_LOG_FILE_FAILED);\r\n //alert(t('file_duplicated'));\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_duplicated')}\r\n ));\r\n }\r\n}\r\n\r\n\r\n//マニュアルデータ取得アクションを待ち受ける\r\nfunction* handleFetchManual(context) {\r\n while(true){\r\n const action = yield take(FETCH_REQUEST);\r\n const payload = yield call(fetchManual, action.payload);\r\n if(payload) {\r\n yield put(fetchSuccess(payload));\r\n } else {\r\n yield put(fetchFailed('error'))\r\n }\r\n }\r\n}\r\n\r\n//マニュアルデータ取得成功を待ち受ける\r\nfunction* handleFetchSuccess(context) {\r\n while(true) {\r\n const action = yield take(FETCH_SUCCESS);\r\n const formType = yield select(getFormType);\r\n\r\n if(formType===formTypes.UPGRADE){\r\n yield put(prepareUpgrade());\r\n }\r\n const categories = yield select(getSelectedCategories);\r\n const models = yield select(getSelectedModels);\r\n yield put(modelsSelected(models));\r\n yield put(categoriesSelected(categories))\r\n }\r\n}\r\n\r\n//マニュアル更新アクションを待ち受ける\r\nfunction* handlePutManual(context) {\r\n while(true) {\r\n const action = yield take(PUT_REQUEST);\r\n const payload = yield call(putManual,\r\n action.payload.file,\r\n action.payload.putData,\r\n action.payload.changeLogFile,\r\n );\r\n if(payload) {\r\n yield put(putSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('put_success')}\r\n ));\r\n } else {\r\n yield put(putFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('put_failed')}\r\n ));\r\n yield call(context.history.push, 'manual_list');\r\n }\r\n }\r\n}\r\n\r\n\r\n//アップグレードアクションを待ち受ける\r\nfunction* handlePostUpgradeManual(context) {\r\n while(true) {\r\n const action = yield take(POST_UPGRADE_REQUEST);\r\n const payload = yield call(postUpgradeManual,\r\n action.payload.upgradeTargetId,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.changeLogFile);\r\n if(payload) {\r\n yield put(postUpgradeSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_upgrade_success')}\r\n ));\r\n } else {\r\n yield put(postUpgradeFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_upgrade_failed')}\r\n ));\r\n yield call(context.history.push, 'manual_list');\r\n }\r\n }\r\n}\r\n\r\n//新規登録アクションを待ち受ける\r\nfunction* handlePostNewManual(context) {\r\n while(true){\r\n const action = yield take(POST_NEW_REQUEST);\r\n const payload = yield call(postNewManual,\r\n action.payload.file,\r\n action.payload.postData,\r\n action.payload.changeLogFile);\r\n if(payload) {\r\n yield put(postNewSuccess(payload));\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('post_new_success')}\r\n ));\r\n } else {\r\n yield put(postNewFailed('error'))\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('post_new_failed')}\r\n ));\r\n yield call(context.history.push, 'manual_list');\r\n }\r\n }\r\n}\r\n\r\n//フォーム(新規)表示アクションを待ち受ける\r\nfunction* handleOpenNewForm(context) {\r\n while(true){\r\n yield take(OPEN_NEW);\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'manual');\r\n }\r\n}\r\n\r\n//フォーム(アップグレード)表示アクションを待ち受ける\r\nfunction* handleOpenUpgradeForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_UPGRADE);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'manual');\r\n }\r\n}\r\n\r\n//フォーム(編集)表示アクションを待ち受ける\r\nfunction* handleOpenEditForm(context) {\r\n while (true) {\r\n const action = yield take(OPEN_EDIT);\r\n //マニュアルデータを取得する\r\n yield put(fetchRequest(action.payload));\r\n //カテゴリ一覧を取得する\r\n yield put(categoriesAction.fetchRequest());\r\n yield call(context.history.push, 'manual');\r\n }\r\n}\r\n\r\n\r\n//リストへ戻るためのアクションを待ち受ける\r\nfunction* handleBackToList(context) {\r\n while(true){\r\n yield take(BACK_TO_LIST);\r\n const confirmChannel = channel()\r\n\r\n yield put(confirmModule.showConfirm({\r\n title: t('confirm'),\r\n content: t('back_to_list_confirm'),\r\n actions: {\r\n ok: () => {\r\n context.history.push('manual_list');\r\n }\r\n }\r\n }))\r\n }\r\n}\r\n\r\n\r\n//マニュアル削除のアクションを待ち受ける\r\nfunction* handleDeleteManual(context) {\r\n while(true) {\r\n const action = yield take(DELETE_REQUEST)\r\n const payload = yield call(deleteManual, action.payload)\r\n if(payload) {\r\n yield put(deleteSuccess());\r\n yield put(messageModule.showMessage(\r\n {type: 'success', content: t('delete_manual_success')}\r\n ));\r\n } else {\r\n yield put(deleteFailed());\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('delete_manual_failed')}\r\n ));\r\n }\r\n context.history.push('manual_list');\r\n }\r\n}\r\n\r\n\r\n//カテゴリ選択のアクションを待ち受ける\r\nfunction * handleCategoriesSelected(context) {\r\n while(true) {\r\n const action = yield take(CATEGORIES_SELECTED);\r\n\r\n //カテゴリ選択で紐づかなくなった機種を外す\r\n const categories = yield select(getCategories);\r\n const selectedCategories = yield select(getSelectedCategories);\r\n const selectedModels = yield select(getSelectedModels);\r\n const models = yield select(getModels);\r\n\r\n const isSerialEditable = yield select(getIsSerialEditable);\r\n const formType = yield select(getFormType);\r\n\r\n if((formType!==formTypes.EDIT && isSerialEditable) && ( categories && selectedCategories && selectedModels && models)) {\r\n const _selectedCategories = categories.filter(x => selectedCategories.includes(x.id));\r\n const _selectedModels = models.filter(x => selectedModels.includes(x.id) &&\r\n _selectedCategories.map(s => s.category_short_name).includes(x.category_code));\r\n yield put(modelsSelected(_selectedModels.map(x => { return x.id })));\r\n }\r\n\r\n // カテゴリに応じた機種一覧を取得する\r\n yield put(modelsAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\n//機種選択のアクションを待ち受ける\r\nfunction * handleModelsSelected(context) {\r\n while(true) {\r\n const action = yield take(MODELS_SELECTED);\r\n // 機種に応じた国一覧を取得する\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n }\r\n}\r\n\r\nconst validateString = (str, maxLen, minLen=0) => {\r\n if (str && minLen <= str.length && str.length <= maxLen) {\r\n return true;\r\n }else {\r\n return false;\r\n }\r\n}\r\n\r\nconst validateNumber = (num, maxNum, minNum=0) => {\r\n if (num && minNum <= num && num <= maxNum ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * バージョン(xx.xx.xx)を比較可能な値に変換する\r\n */\r\nconst getRelativeVer = (x) => {\r\n const xSplit = String(x).split('.');\r\n const x1 = Number(xSplit[0]) || 0;\r\n const x2 = Number(xSplit[1]) || 0;\r\n const x3 = Number(xSplit[2]) || 0;\r\n return x1*100+x2*10+x3;\r\n}\r\n\r\n\r\n//各ステップの次へボタン押下のリクエストを待ち受ける(バリデーション)\r\n//[参考]複雑なフォームでなければ、Redux-FormやFormikを利用してバリデーションする\r\nfunction * handleStepNextRequest(context) {\r\n while (true) {\r\n const action = yield take(STEP_NEXT_REQUEST);\r\n const formType = yield select(getFormType);\r\n const manualForm = yield select(getManualForm);\r\n const currentStep = manualForm.activeStep;\r\n switch (currentStep) {\r\n case 0:\r\n if (manualForm.manual.file_name !== '' &&\r\n manualForm.manual.file_type !== '' &&\r\n manualForm.manual.title_ja !== '' &&\r\n manualForm.manual.title_en !== ''){\r\n yield put(stepNext())\r\n }else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('file_input_error')}\r\n ));\r\n }\r\n break;\r\n case 1:\r\n if (manualForm.categories.length !== 0 &&\r\n manualForm.new_serials.length !== 0 &&\r\n manualForm.manual.version !== '') {\r\n const minVersion = Math.max(...manualForm.serials.map(m=>getRelativeVer(m.version)))\r\n if(getRelativeVer(manualForm.manual.version) <= minVersion){\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('version_range_error')}\r\n ));\r\n break;\r\n }\r\n if(manualForm.editable_max_version &&\r\n (getRelativeVer(manualForm.editable_max_version) <= getRelativeVer(manualForm.manual.version))) {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('version_range_edit_error')}\r\n ));\r\n break;\r\n }\r\n yield put(stepNext())\r\n }else {\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('model_input_error')}\r\n ));\r\n }\r\n break;\r\n case 2:\r\n if (manualForm.serials.every(item => item.start_serial!==null && item.end_serial!==null)\r\n && manualForm.new_serials.every(item => item.start_serial!==null && item.end_serial!==null)){\r\n if(manualForm.serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )\r\n &&\r\n manualForm.new_serials.every(item =>\r\n ( 10001 <= item.start_serial && item.start_serial <= 99999 )\r\n && ( 10001 <= item.end_serial && item.end_serial <= 99999 )\r\n )) {\r\n yield put(stepNext())\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_range_error')}\r\n ));\r\n }\r\n }\r\n else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('serial_input_error')}\r\n ));\r\n }\r\n break;\r\n case 3:\r\n /* 国として(共栄社)のみとしたい場合は空となるため、バリデーションを外す\r\n if(manualForm.countries.length !== 0) { //ページ数のバリデーションも後で追加\r\n */\r\n yield put(countriesAction.fetchRequest(action.payload));\r\n switch (manualForm.formType) {\r\n case formTypes.NEW:\r\n const file = yield select(getFile);\r\n const changeLogFile = yield select(getChangeLogFile);\r\n const postData = yield select(getPostNewData);\r\n yield put(postNewRequest({file: file, postData: postData, changeLogFile: changeLogFile }));\r\n //yield call(context.history.push, 'manual_list');\r\n break;\r\n case formTypes.UPGRADE:\r\n yield put(postUpgradeRequest({\r\n upgradeTargetId: yield select(getUpgradeTargetId),\r\n file: yield select(getFile),\r\n postData: yield select(getPostUpgradeData),\r\n changeLogFile: yield select(getChangeLogFile)\r\n }));\r\n //yield call(context.history.push, 'manual_list');\r\n break;\r\n case formTypes.EDIT:\r\n yield put(putRequest({\r\n file: yield select(getFile),\r\n putData: yield select(getPutData),\r\n changeLogFile: yield select(getChangeLogFile)\r\n }));\r\n //yield call(context.history.push, 'manual_list');\r\n default:\r\n break;\r\n }\r\n /*\r\n } else{\r\n yield put(messageModule.showMessage(\r\n {type: 'error', content: t('country_input_error')}\r\n ));\r\n }\r\n */\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const sagas = [\r\n handlePutSuccess,\r\n handlePostNewSuccess,\r\n handlePostUpgradeSuccess,\r\n handleSelectedFile,\r\n handleSelectedFileSuccess,\r\n handleSelectedFileFailed,\r\n handleSelectedChangeLogFile,\r\n handleSelectedChangeLogFileFailed,\r\n handleFetchManual,\r\n handleFetchSuccess,\r\n handleOpenNewForm,\r\n handleOpenEditForm,\r\n handleOpenUpgradeForm,\r\n handleBackToList,\r\n handleModelsSelected,\r\n handleCategoriesSelected,\r\n handleStepNextRequest,\r\n handlePostNewManual,\r\n handlePostUpgradeManual,\r\n handlePutManual,\r\n handleDeleteManual,\r\n];\r\n","import { combineReducers } from 'redux';\n//import { routerReducer } from 'react-router-redux';\n//import { reducer as reduxFormReducer } from 'redux-form';\n\nimport auth from './modules/auth';\nimport catalogAuth from './modules/catalog/catalogAuth';\nimport catalogForm from './modules/catalog/catalogForm';\nimport catalogList from './modules/catalog/catalogList';\nimport docAuth from './modules/doc/docAuth';\nimport docForm from './modules/doc/docForm';\nimport docList from './modules/doc/docList';\nimport engineAuth from './modules/engine/engineAuth';\nimport engineForm from './modules/engine/engineForm';\nimport engineList from './modules/engine/engineList';\nimport maintenanceAuth from './modules/maintenance/maintenanceAuth';\nimport maintenanceForm from './modules/maintenance/maintenanceForm';\nimport maintenanceList from './modules/maintenance/maintenanceList';\nimport manualForm from './modules/manualForm';\nimport manualList from './modules/manualList';\nimport countries from './modules/countries';\nimport engineMakers from './modules/engineMakers';\nimport engineModels from './modules/engineModels';\nimport categories from './modules/categories';\nimport models from './modules/models';\nimport message from './modules/message';\nimport confirm from './modules/confirm';\n\nexport default combineReducers({\n auth,\n catalogAuth,\n catalogForm,\n catalogList,\n docAuth,\n docForm,\n docList,\n engineAuth,\n engineForm,\n engineList,\n maintenanceAuth,\n maintenanceForm,\n maintenanceList,\n manualForm,\n manualList,\n countries,\n engineMakers,\n engineModels,\n categories,\n models,\n message,\n confirm,\n //routing: routerReducer,\n //form: reduxFormReducer,\n});\n","import { all } from 'redux-saga/effects'\nimport { sagas as auth } from './modules/auth'\nimport { sagas as manualList } from './modules/manualList'\nimport { sagas as manualForm } from './modules/manualForm'\nimport { sagas as catalogAuth } from './modules/catalog/catalogAuth'\nimport { sagas as catalogList } from './modules/catalog/catalogList'\nimport { sagas as catalogForm } from './modules/catalog/catalogForm'\nimport { sagas as docAuth } from './modules/doc/docAuth'\nimport { sagas as docList } from './modules/doc/docList'\nimport { sagas as docForm } from './modules/doc/docForm'\nimport { sagas as countries } from './modules/countries'\nimport { sagas as categories } from './modules/categories'\nimport { sagas as models } from './modules/models'\nimport { sagas as engineMakers } from './modules/engineMakers';\nimport { sagas as engineModels } from './modules/engineModels';\nimport { sagas as engineAuth } from './modules/engine/engineAuth'\nimport { sagas as engineList } from './modules/engine/engineList'\nimport { sagas as engineForm } from './modules/engine/engineForm'\nimport { sagas as maintenanceAuth } from './modules/maintenance/maintenanceAuth'\nimport { sagas as maintenanceList } from './modules/maintenance/maintenanceList'\nimport { sagas as maintenanceForm } from './modules/maintenance/maintenanceForm'\n\nconst allSagas = [\n ...auth,\n ...manualList,\n ...manualForm,\n ...catalogAuth,\n ...catalogList,\n ...catalogForm,\n ...docAuth,\n ...docList,\n ...docForm,\n ...countries,\n ...categories,\n ...models,\n ...engineMakers,\n ...engineModels,\n ...engineAuth,\n ...engineForm,\n ...engineList,\n ...maintenanceAuth,\n ...maintenanceForm,\n ...maintenanceList,\n];\n\nexport default function* rootSaga(context) {\n yield all(allSagas.map(f => f(context)));\n}\n","import { createStore, applyMiddleware, compose } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport logger from 'redux-logger';\r\nimport rootReducer from './reducer';\r\nimport rootSaga from './saga';\r\n\r\nimport { routerMiddleware } from 'react-router-redux';\r\n//import createHistory from 'history/createHashHistory';\r\nimport createHistory from 'history/createBrowserHistory';\r\n\r\n//export const history = createHistory({ basename: '/' });\r\nexport const history = createHistory({ basename: '/OnlineManual' });\r\n//export const history = createHistory({ basename: '/OnlineManualTest' });\r\nconst routing = routerMiddleware(history);\r\n\r\nexport default function configureStore(initialState) {\r\n const sagaMiddleware = createSagaMiddleware();\r\n const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\n let middlewares = composeEnhancers(applyMiddleware(routing, sagaMiddleware, logger));\r\n if (process.env.NODE_ENV == 'production') {\r\n middlewares = applyMiddleware(routing, sagaMiddleware)\r\n }\r\n\r\n const store = createStore( rootReducer, initialState, middlewares);\r\n\r\n sagaMiddleware.run(rootSaga, {history});\r\n\r\n return store;\r\n}\r\n","/*\n * 汎用:コンテナーコンポーネント\n */\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = theme => ({\n container: {\n margin: theme.spacing.unit * 5\n }\n})\n\nconst MainContainer = (props) => {\n const { classes } = props;\n return (\n
\n {props.children}\n
\n );\n};\n\nexport default withStyles(styles)(MainContainer);\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport Button from '@material-ui/core/Button';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport green from '@material-ui/core/colors/green';\r\nimport amber from '@material-ui/core/colors/amber';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n};\r\n\r\nconst styles1 = theme => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.dark,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing.unit,\r\n },\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n});\r\n\r\nfunction MessageContent(props) {\r\n const { classes, className, message, onClose, variant, ...other } = props;\r\n const Icon = variantIcon[variant];\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n {...other}\r\n />\r\n );\r\n}\r\n\r\nMessageContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n className: PropTypes.string,\r\n message: PropTypes.node,\r\n onClose: PropTypes.func,\r\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired,\r\n};\r\n\r\nconst MessageContentWrapper = withStyles(styles1)(MessageContent);\r\n\r\nconst styles2 = theme => ({\r\n margin: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass Message extends React.Component {\r\n state = {\r\n open: false,\r\n };\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.isShowing) {\r\n this.setState({ open: true })\r\n } else {\r\n this.setState({ open: false })\r\n }\r\n }\r\n\r\n handleClick = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n this.setState({ open: false });\r\n //this.props.handleHideMessage();\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const {type, message} = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nMessage.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles2)(Message);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport Message from '../components/Message';\r\n\r\nimport * as messageModule from '../modules/message';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isShowing: state.message.isShowing,\r\n message: state.message.content,\r\n type: state.message.type,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleHideMessage: () => dispatch(messageModule.hideMessage()),\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Message);\r\n","/*\r\n * 汎用:確認ダイアログコンポーネント\r\n */\r\nimport React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport withMobileDialog from '@material-ui/core/withMobileDialog';\r\nimport {t} from 'i18next';\r\n\r\nconst ConfirmDialog = props => {\r\n const { isShowing, title, content, actions } = props;\r\n const { handleHideConfirm } = props;\r\n\r\n const handleOK = () => {\r\n if(actions.ok) {\r\n actions.ok();\r\n }\r\n handleHideConfirm();\r\n }\r\n\r\n const handleCancel = () => {\r\n if(actions.cancel) {\r\n actions.cancel();\r\n }\r\n handleHideConfirm();\r\n }\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n } \r\n\r\nexport default ConfirmDialog;\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport ConfirmDialog from '../components/ConfirmDialog';\r\nimport * as confirmModule from '../modules/confirm';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isShowing: state.confirm.isShowing,\r\n title: state.confirm.title,\r\n content: state.confirm.content,\r\n actions: state.confirm.actions,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleHideConfirm: () => dispatch(confirmModule.hideConfirm()),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConfirmDialog);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport {HOST} from '../constants/api';\r\nimport {refreshRequest} from '../modules/auth';\r\n\r\n\r\n\r\nclass PrivateRoute extends React.Component {\r\n componentWillMount() {\r\n if (!this.props.isLoggedIn) {\r\n this.props.handleRefreshRequest();\r\n }\r\n }\r\n render() {\r\n const {component: Component, ...rest} = this.props;\r\n return (\r\n (\r\n (localStorage.getItem('accessToken') && localStorage.getItem('refreshToken'))\r\n ? \r\n : \r\n )} />\r\n )\r\n }\r\n}\r\n\r\n\r\n\r\n/*\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n const {isLoggedIn, handleRefreshRequest} = rest;\r\n if (!isLoggedIn) {\r\n handleRefreshRequest();\r\n }\r\n return (\r\n (\r\n (localStorage.getItem('accessToken') && localStorage.getItem('refreshToken'))\r\n ? \r\n : \r\n )} />\r\n )\r\n}\r\n*/\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isLoggedIn: state.auth.isLoggedin,\r\n isSuperuser: state.auth.account.is_superuser,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleRefreshRequest: () => dispatch(refreshRequest()),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PrivateRoute);\r\n","/*\r\n * 汎用:ヘッダーコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles, withTheme } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport { withRouter } from 'react-router';\r\nimport logo from '../images/baroness_logo.png';\r\n\r\nimport i18next, {t} from 'i18next';\r\n\r\nconst styles = {\r\n root: {\r\n flexGrow: 1,\r\n },\r\n header: {\r\n backgroundColor: \"#3B5998\",\r\n maxHeight: 50,\r\n },\r\n toolbar: {\r\n paddingLeft: '5%',\r\n minHeight: 50,\r\n maxHeight: 50,\r\n },\r\n logo: {\r\n height: 38,\r\n padding: 2,\r\n marginRight: 5,\r\n },\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginLeft: -12,\r\n marginRight: 10,\r\n fontSize: 20,\r\n textTransform: 'none',\r\n width: 220,\r\n fontSize: 22\r\n },\r\n adminMenuButton: {\r\n marginLeft: -12,\r\n marginRight: 20,\r\n fontSize: 20,\r\n textTransform: 'none',\r\n width: 300,\r\n fontSize: 22\r\n },\r\n actionButton: {\r\n textTransform: 'none',\r\n fontSize: 14,\r\n marginRight: 14,\r\n color: \"#9d9d9d\",\r\n '&:hover': {\r\n color: \"white\",\r\n } \r\n },\r\n actionMenu: {\r\n paddingRight: '5%'\r\n },\r\n title: {\r\n fontSize: '20px'\r\n }\r\n};\r\n\r\nconst Header = (props) => {\r\n const { classes } = props;\r\n const { language, isSuperuser, isLoggedIn, hasFormOpened, showConfirm, currentUrl } = props;\r\n const { handleLogout, changeLanguage } = props;\r\n\r\n const getTitle = () => {\r\n let isProductUrl = currentUrl.indexOf('catalog_list') !== -1;\r\n return isSuperuser ? \"\" : isProductUrl ? t('product_catalog_title') : t('online_manual_title');\r\n }\r\n\r\n const linkToMenu = () => props.history.push('/');\r\n\r\n const linkToHome = () => {\r\n if(hasFormOpened) {\r\n showConfirm({\r\n title: t('confirm'),\r\n content: t('back_to_list_confirm'),\r\n actions: {\r\n ok: () => {\r\n if(isSuperuser) {\r\n window.location.href = 'https://baroness-international.com/Admin/menu/menu-onlinemanual';\r\n } else {\r\n window.location.href = 'https://baroness-international.com';\r\n }\r\n }}\r\n })\r\n } else {\r\n if(!isLoggedIn) {\r\n props.history.push('/login');\r\n }\r\n else if(isSuperuser) {\r\n window.location.href = 'https://baroness-international.com/Admin/menu/menu-onlinemanual';\r\n }\r\n else {\r\n window.location.href = 'https://baroness-international.com';\r\n }\r\n }\r\n }\r\n\r\n const nextLang = language==='ja' ? 'en':'ja';\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {\r\n isSuperuser ? \r\n : ''\r\n }\r\n {getTitle()}\r\n \r\n {\r\n isLoggedIn ?\r\n \r\n \r\n \r\n \r\n \r\n : ''\r\n }\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nHeader.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withRouter(withStyles(styles)(Header));\r\n","import { connect } from 'react-redux';\r\nimport Header from '../components/Header';\r\n\r\nimport * as authModule from '../modules/auth';\r\nimport * as confirmModule from '../modules/confirm';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n language: state.auth.language,\r\n isLoggedIn: state.auth.isLoggedIn,\r\n isSuperuser: state.auth.account.is_superuser,\r\n hasFormOpened: state.manualForm.hasFormOpened,\r\n currentUrl: window.location.href\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleLogout: (data) => dispatch(authModule.logout(data)),\r\n changeLanguage: (lang) => dispatch(authModule.changeLanguage(lang)),\r\n showConfirm: (data) => dispatch(confirmModule.showConfirm(data)),\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(Header);\r\n","/*\r\n * ローディングバー\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\n\r\nconst styles = {\r\n root: {\r\n flexGrow: 1,\r\n },\r\n};\r\n\r\nconst Loading = (props) => {\r\n const {classes} = props;\r\n const {isWaiting} = props;\r\n return (\r\n
\r\n {\r\n isWaiting ?\r\n : ''\r\n }\r\n
\r\n )\r\n}\r\n\r\nLoading.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(Loading);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport Loading from '../components/Loading';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isWaiting: state.auth.isLoading\r\n || state.categories.isLoading\r\n || state.models.isLoading\r\n || state.manualForm.isLoading\r\n || state.manualList.isLoading\r\n || state.manualForm.isUploading\r\n || state.catalogForm.isLoading\r\n || state.catalogList.isLoading\r\n || state.catalogForm.isUploading\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null,\r\n)(Loading);\r\n","/*\n * 汎用:ログインコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Avatar from '@material-ui/core/Avatar';\nimport Button from '@material-ui/core/Button';\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Input from '@material-ui/core/Input';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\nimport Paper from '@material-ui/core/Paper';\nimport Typography from '@material-ui/core/Typography';\nimport withStyles from '@material-ui/core/styles/withStyles';\n\nconst styles = theme => ({\n main: {\n width: 'auto',\n display: 'block', // Fix IE 11 issue.\n marginLeft: theme.spacing.unit * 3,\n marginRight: theme.spacing.unit * 3,\n [theme.breakpoints.up(400 + theme.spacing.unit * 3 * 2)]: {\n width: 400,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n paper: {\n marginTop: theme.spacing.unit * 8,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit * 3}px ${theme.spacing.unit * 3}px`,\n },\n avatar: {\n margin: theme.spacing.unit,\n backgroundColor: theme.palette.secondary.main,\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n marginTop: theme.spacing.unit,\n },\n submit: {\n marginTop: theme.spacing.unit * 3,\n },\n});\n\nclass Login extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n if(this.props.autoLogin && this.props.isAdmin){\n const cookie = new URLSearchParams(window.location.search).get(\"cookie\");\n this.props.handleAutoAdminLogin(cookie);\n }\n }\n\n render(){\n const { classes } = this.props;\n const { username, password } =this.props;\n const { handleLogin, handleAdminLogin, handleInputChange } = this.props;\n const { isAdmin } = this.props;\n\n const onInputChanged = name => event => {\n handleInputChange(name, event.target.value);\n }\n\n const onLogin = () => {\n if(isAdmin) {\n handleAdminLogin();\n }else{\n handleLogin();\n }\n }\n\n return (\n
\n \n \n
\n \n ID\n \n \n \n Password\n \n \n \n Sign in\n \n
\n
\n
\n );\n }\n}\n\nLogin.propTypes = {\n classes: PropTypes.object.isRequired,\n handleLogin: PropTypes.func.isRequired,\n handleAutoAdminLogin: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Login);\n","import {connect} from 'react-redux';\n\nimport Login from '../components/Login';\nimport * as authModule from '../modules/auth';\n\nconst mapStateToProps = (state) => {\n return {\n username: state.auth.form.username,\n passowrd: state.auth.form.password,\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n handleLogin: () => dispatch(authModule.loginRequest()),\n handleAdminLogin: () => dispatch(authModule.adminLoginRequest()),\n handleInputChange: (key, value) =>\n dispatch(authModule.formChanged({key: key, value: value})),\n handleAutoAdminLogin: (cookie) => dispatch(authModule.autoAdminLoginRequest(cookie))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","/*\n * メニュー:メニューコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nimport {t} from 'i18next';\n\nimport * as fileType from '../constants/fileTypes';\n\nconst styles = theme => ({\n button: {\n margin: theme.spacing.unit,\n },\n layout: {\n margin: theme.spacing.unit * 5,\n }\n});\n\nconst menuItems = [\n {fileType: fileType.UM, key: 'UM' },\n {fileType: fileType.PC, key: 'PC' },\n {fileType: fileType.SM, key: 'SM' },\n];\n\n\nconst Menu = (props) => {\n const { classes } = props;\n const { handleMenuSelected } = props;\n return (\n
\n
\n {\n menuItems.map(item => (\n \n ))\n }\n \n \n \n \n
\n
\n );\n}\n\nMenu.propTypes = {\n handleMenuSelected: PropTypes.func.isRequired,\n}\n\nexport default withRouter(withStyles(styles)(Menu));\n","import { connect } from 'react-redux';\nimport Menu from '../components/Menu';\n\nimport { menuSelected } from '../modules/manualList';\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n handleMenuSelected: (fileType) => dispatch(menuSelected(fileType)),\n});\n\nexport default connect(null, mapDispatchToProps)(Menu);\n","/*\r\n * リスト:新規ボタンコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\n\r\n\r\nconst styles = theme => ({\r\n actionButton: {\r\n margin: 0,\r\n top: 'auto',\r\n right: 20,\r\n bottom: 20,\r\n left: 'auto',\r\n position: 'fixed',\r\n },\r\n})\r\n\r\nconst CreateButton = (props) => {\r\n const { classes } = props;\r\n const { handleClick } = props;\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nCreateButton.propsType = {\r\n classes: PropTypes.object.isRequired,\r\n handleClick: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(CreateButton);\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\n\r\nconst AdminOnly = (props) => {\r\n const {isSuperuser} = props;\r\n const {hide} = props;\r\n if(hide) {\r\n if(isSuperuser){\r\n return null;\r\n }else{\r\n return (\r\n props.children\r\n )\r\n }\r\n }\r\n else {\r\n if(isSuperuser){\r\n return (\r\n props.children\r\n )\r\n }else{\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isSuperuser: state.auth.account.is_superuser,\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, null)(AdminOnly);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: 100,\r\n height: 42,\r\n }\r\n})\r\n\r\nconst NumberSelect = (props) => {\r\n const { classes } = props;\r\n const { selected, dataSource} = props;\r\n const { onChange } = props;\r\n\r\n return (\r\n \r\n {\r\n dataSource.map( (num, index) =>\r\n {num}\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(NumberSelect);\r\n","/*\n * リスト:マニュアル一覧表示用コンポーネント\n */\nimport React from 'react';\nimport Moment from 'react-moment';\nimport moment from 'moment'\nimport 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport i18next,{t} from 'i18next';\n\nimport CreateIcon from '@material-ui/icons/Create';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nimport { Popup, Pagination } from 'semantic-ui-react';\n\nimport AdminOnly from '../../containers/AdminOnly';\nimport NumberSelect from '../NumberSelect';\nimport Tooltip from '@material-ui/core/Tooltip';\n\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n tableLayout: 'fixed',\n },\n tableFooter: {\n marginTop: theme.spacing.unit,\n },\n rowSelected: {\n background: \"#FFF9C4 !important\",\n }\n});\n\n\nclass ManualTable extends React.Component {\n state = {\n checkedRow: null\n }\n\n SelectRow = (id) => {\n this.setState({checkedRow: id});\n }; \n \n constructor (props) {{\n super(props);\n }}\n\n render() {\n const { classes } = this.props;\n const { resources, page, per_page, count, isSuperuser} = this.props;\n const { handlePageChanged, handlePerPageChanged, handleSortChanged } = this.props;\n const { handleOpenPDF, handleDownload, handleUpgrade, handleEdit } = this.props;\n const { sort } = this.props;\n\n //合計ページ数\n let totalPages = Math.floor(count / per_page);\n if(count % per_page !== 0) {\n totalPages++;\n }\n //権限によってヘッダー情報を変更する\n const getHeaders = () => {\n if (isSuperuser) {\n return adminHeaders;\n }\n else {\n return clientHeaders;\n }\n }\n\n //ページ変更イベント\n const handleChangePage = (event, page) => {\n handlePageChanged(page.activePage);\n };\n\n //表示件数変更イベント\n const handleChangeRowsPerPage = event => {\n handlePerPageChanged(event.target.value);\n };\n\n const onRequestSort = (event, property) => {\n handleSortChanged(property);\n }\n\n const createSortHandler = property => event => {\n onRequestSort(event, property);\n }\n\n\n //表示内容を項目に応じて切り分ける\n const createTableCell = (row, id) => {\n\n switch (id) {\n case 'serials':\n return (\n row.serials.map(item =>{\n return (\n
{item.model_code}: {item.start_serial} ~ {item.end_serial}
\n )}\n )\n )\n case 'version':\n const xSplit = String(row[id]).split('.');\n const x1 = xSplit[0] || '0';\n const x2 = xSplit[1] || '0';\n const x3 = xSplit[2] || '0';\n if(isSuperuser) {\n return `${x1}.${x2}.${x3}`;\n }else{\n return `${x1}.${x2}`;\n }\n return (Number(row[id]).toFixed(1))\n case 'display':\n const isDisplay = row[id];\n if (isDisplay){\n return (t('do_display'))\n }\n else {\n return (t('do_not_display'))\n }\n case 'updated_at':\n return (\n \n {moment(row[id])}\n \n )\n case 'actions':\n return (\n \n \n handleEdit(row.id)}\n >\n \n {t('edit')}\n \n {\n row.is_latest ?\n handleUpgrade(row.id)}\n >\n \n {t('upgrade')}\n \n : ''\n }\n \n \n handleOpenPDF(row.file_name)}\n >\n \n {t('download')}\n \n \n \n )\n default:\n return (row[id])\n }\n }\n\n let title='title_ja';\n if(i18next.language!=='ja'){\n title = 'title_en';\n }\n\n let overview = 'overview_ja';\n if(i18next.language!=='ja') {\n overview = 'overview_en';\n }\n\n //管理者用ヘッダー定義\n const adminHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"\", width: \"280px\"},\n {id: 'display', label: t('display'), width: \"150px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'version', label: t('version'), width: \"180px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'file_type', label: t('type'), width: \"140px\"},\n {id: 'destination', label: t('destination'), width: \"140px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n {id: 'evapor', label: t('evapor'), width: \"200px\"},\n {id: 'eu_declaration', label: t('eu_declaration'), width: \"200px\"},\n {id: 'updated_at', label: t('updated_at'), width: \"150px\"},\n ];\n\n //販売店用ヘッダー定義\n const clientHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"PDF\", width: \"200px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'version', label: t('version'), width: \"180px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'file_type', label: t('type'), width: \"140px\"},\n {id: 'destination', label: t('destination'), width: \"140px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n {id: 'evapor', label: t('evapor'), width: \"200px\"},\n {id: 'eu_declaration', label: t('eu_declaration'), width: \"200px\"},\n ];\n\n return (\n
\n \n \n \n \n {getHeaders().map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n \n {t('change_log')}\n \n \n \n \n \n \n {resources.map(row => {\n return (\n {\n this.SelectRow(row.id);\n }}>\n {\n getHeaders().map(item => (\n \n {createTableCell(row, item.id)}\n \n ))\n }\n \n \n {\n row.change_log_file_name ?\n handleOpenPDF(row.change_log_file_name)}\n >\n \n {t('download')}\n \n : ''\n }\n \n \n \n }\n />\n );\n })}\n \n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nManualTable.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(ManualTable);\n","/*\r\n * カテゴリ複数選択用セレクトボックス\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { ListItemText, FormControl } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: theme.spacing.unit * 2,\r\n width: 200,\r\n }\r\n})\r\n\r\n/**\r\n * マルチセレクト\r\n */\r\nconst MultiSelect = (props) => {\r\n /**Styles */\r\n const { classes } = props;\r\n /**Dispatches */\r\n const { handleChange } = props;\r\n /**States */\r\n const { selected, dataSource, label } = props;\r\n\r\n const handleChangeSelect = event => {\r\n handleChange(event.target.value);\r\n }\r\n \r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n }\r\n displayEmpty\r\n renderValue={selected => {\r\n const selectedValues = selected.map(x => dataSource.find(data => data.key === x).value);\r\n return selectedValues.join(', ')\r\n }\r\n }>\r\n {\r\n dataSource.map(data => (\r\n \r\n -1} />\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nMultiSelect.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n handleChange: PropTypes.func.isRequired,\r\n selected: PropTypes.object.isRequired,\r\n dataSource : PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(MultiSelect);\r\n","/*\r\n * 汎用:ファイル入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport Dropzone from 'react-dropzone';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport classNames from 'classnames';\r\nimport {t} from 'i18next';\r\nimport axios from 'axios';\r\nimport {HOST} from '../constants/api';\r\n\r\nconst styles = (theme) => ({\r\n draggableArea: {\r\n width: 400,\r\n height: 80,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderWidth: 2,\r\n borderColor: '#ccc',\r\n borderStyle: 'solid',\r\n borderRadius: 5,\r\n },\r\n filename: {\r\n fontSize: 12,\r\n },\r\n title: {\r\n fontSize: 13,\r\n coloe: '#ccc',\r\n }\r\n});\r\n\r\nconst FileDropzone = (props) => {\r\n const { classes } = props;\r\n const { filename } = props;\r\n const { onFileSelected } = props;\r\n const { accept } = props;\r\n\r\n let _accept = \"application/pdf\"\r\n if(!!accept) {\r\n _accept = accept;\r\n }\r\n\r\n const { title } = props;\r\n\r\n let { fileDropAreaComment, fileDroppingAreaComment } = props;\r\n if(!fileDropAreaComment) {\r\n fileDropAreaComment = t('file_drop_area');\r\n }\r\n if(!fileDroppingAreaComment) {\r\n fileDroppingAreaComment = t('file_drop_here');\r\n }\r\n\r\n const onDrop = (files) => {\r\n const file = files[0];\r\n if(!file) {\r\n alert(t('file_input_error'));\r\n return;\r\n }\r\n onFileSelected(file);\r\n }\r\n\r\n return (\r\n \r\n {({getRootProps, getInputProps, isDragActive}) => {\r\n return (\r\n
\r\n {title ? : \"\"}\r\n
\r\n \r\n {\r\n isDragActive ?\r\n
{fileDropAreaComment}
:\r\n
{fileDroppingAreaComment}
\r\n }\r\n
\r\n
{(filename && filename!=='') ? t('file_name') + ':' + filename : ''}
\r\n
\r\n )\r\n }}\r\n
\r\n )\r\n}\r\n\r\nexport default withStyles(styles)(FileDropzone);\r\n","/*\r\n * 汎用:ダイアログ表示コンポーネント(ボタン有)\r\n */\r\nimport React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport {t} from 'i18next';\r\n\r\nconst styles = theme => ({\r\n button:{\r\n marginTop: theme.spacing.unit * 2\r\n }\r\n});\r\n\r\nconst rawStyles = theme => ({\r\n button: {}\r\n});\r\n\r\n\r\nclass SharedDialog extends Component {\r\n state = {\r\n open: false,\r\n };\r\n\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { buttonTitle, dialogTitle, icon } = this.props;\r\n const { handleOK, handleOpen, handleCancel } = this.props;\r\n\r\n const _handleOpen = () => {\r\n if(handleOpen){\r\n handleOpen();\r\n }\r\n this.handleClickOpen();\r\n }\r\n\r\n const _handleOK = () => {\r\n if(handleOK){\r\n handleOK();\r\n }\r\n this.handleClose();\r\n }\r\n\r\n const _handleCancel = () => {\r\n if(handleCancel){\r\n handleCancel();\r\n }\r\n this.handleClose();\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {dialogTitle}\r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(SharedDialog);\r\n\r\nexport const RawSharedDialog = withStyles(rawStyles)(SharedDialog);\r\n","import React from 'react';\r\nimport FileDropzone from '../FileDropzone';\r\nimport { RawSharedDialog as SharedDialog } from './SharedDialog';\r\nimport PublishIcon from '@material-ui/icons/Publish';\r\n\r\nimport {t} from 'i18next';\r\n\r\nexport default class CountriesImportDialog extends React.Component {\r\n\r\n render() {\r\n const {handleOK, handleCancel, onFileSelected } = this.props;\r\n const {filename} = this.props;\r\n\r\n return (\r\n }\r\n handleOK={handleOK} \r\n handleCancel={handleCancel}>\r\n \r\n \r\n );\r\n }\r\n}","/*\n * リスト:一覧画面の検索フォームコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {t} from 'i18next';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Switch from '@material-ui/core/Switch';\n\nimport SearchIcon from '@material-ui/icons/Search';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport AdminOnly from '../../containers/AdminOnly';\n\nimport MultiSelect from '../MultiSelect';\nimport CountriesImportDialog from '../Shared/CountriesImportDialog';\n\nconst styles = theme => ({\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: 200,\n },\n searchButton: {\n float: 'right',\n margin: theme.spacing.unit * 1,\n },\n});\n\nconst SearchForm = props => {\n const { classes } = props;\n const { queries } = props;\n const { file_types } = props.queries;\n const { handleSubmit, handleInputChange, handleFileTypeChange, handleExportCsv } = props;\n const { categories } = props;\n const { uploadFileName, uploadFileSelected, handleUploadOK, handleUploadCancel} = props;\n\n const handleChangeInput = name => event => {\n handleInputChange(name, event.target.value);\n }\n\n const handleChangeCategories = name => ids => {\n console.log(ids);\n handleInputChange(name, ids);\n }\n\n const handleChangeSwitch = name => event => {\n handleInputChange(name, event.target.checked);\n };\n\n const handleChangeCheckbox = name => event => {\n handleFileTypeChange(name, event.target.checked);\n }\n\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n }\n label={t('UM')}\n />\n \n }\n label={t('PC')}\n />\n \n }\n label={t('PU')}\n />\n \n }\n label={t('SM')}\n />\n \n }\n label={t(\"only_latest\")}\n />\n \n
\n
\n \n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nSearchForm.propTypes = {\n queries: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n handleInputChange: PropTypes.func.isRequired,\n handleFileTypeChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(SearchForm);\n","import { S3_URI } from \"../constants/api\"\r\nimport { createDownloadLog } from \"../modules/api/log\";\r\n\r\n/**\r\n * 拡張子の取得\r\n * @param filename ファイル名\r\n * @returns 拡張子\r\n */\r\nconst getExt = (filename) => {\r\n \tvar pos = filename.lastIndexOf('.');\r\n\tif (pos === -1) return '';\r\n\treturn filename.slice(pos + 1);\r\n}\r\n\r\n/**\r\n * PDFの新規タブ表示およびログ書き込み処理\r\n * @param filename ファイル名\r\n * @returns None\r\n */\r\nexport const openPDF = (filename) => {\r\n //ファイル名の拡張子をチェック\r\n if(getExt(filename).toLowerCase() !== \"pdf\")\r\n return;\r\n\r\n //ログ書き込み\r\n createDownloadLog(filename);\r\n\r\n //新規タブによるPDF表示\r\n window.open(`${S3_URI}/${filename}`, '_blank');\r\n}","import http from './http'\r\n\r\n\r\n//ログ書き込み\r\nexport const createDownloadLog = (filename) => {\r\n return http.post(\"/api/logs\", { \"filename\": filename })\r\n .then( res => {\r\n return res;\r\n })\r\n .catch( res => {\r\n return null;\r\n });\r\n}","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport CreateButton from '../components/CreateButton';\nimport ManualTable from '../components/Manual/ManualTable';\nimport SearchForm from '../components/Manual/SearchForm';\nimport AdminOnly from './AdminOnly';\n\nimport { searchRequest, exportCsvRequest, inputChanged, fileTypeChanged, resetQueries, sortChanged,\n downloadRequest, pageChanged, perPageChanged, menuSelected,\n setUploadFile, uploadCsvRequest, uploadCsvSuccess, uploadCsvFailed } from '../modules/manualList';\nimport { openNew, openUpgrade, openEdit, resetForm } from '../modules/manualForm';\nimport { autoLoginRequest, changeLanguage } from '../modules/auth';\nimport * as categoryAction from '../modules/categories';\nimport { openPDF } from '../services/pdf.service';\n\n\nclass ManualList extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n\n if (!this.props.isLoggedIn) {\n //クエリパラメータから言語情報の取得(?lang=en/ja)\n const qparams = new URLSearchParams(this.props.location.search);\n const lang = qparams.get('lang'); \n this.props.setLanguage(lang);\n\n const {params} = this.props.match;\n if (params.type) {\n this.props.autoLogin(params.type);\n }\n }\n this.props.resetForm();\n this.props.fetchCategories();\n this.props.searchRequest(this.props.queries);\n }\n\n render () {\n const props = this.props;\n return (\n
\n {\n return {\n key : category.id,\n value : category.category_short_name\n }})}\n uploadFileName={props.uploadFileName}\n uploadFileSelected={props.uploadFileSelected}\n handleUploadOK={props.handleUploadOK}\n handleUploadCancel={props.handleUploadCancel}\n />\n openPDF(filename)}\n handleDownload={props.handleDownload}\n handleUpgrade={props.handleUpgrade}\n handleEdit={props.handleEdit}\n handleSortChanged={props.handleSortChanged}\n />\n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = state => ({\n isLoggedIn: state.auth.isLoggedIn,\n isLoading: state.manualList.isLoading,\n queries: state.manualList.queries,\n resources: state.manualList.data.manuals || [],\n count: state.manualList.data.count || 0,\n page: state.manualList.queries.page,\n per_page: state.manualList.queries.per_page,\n isSuperuser: state.auth.account.is_superuser,\n categories: state.categories.data || [],\n uploadFileName: state.manualList.upload_file ?state.manualList.upload_file.name: \"\",\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n searchRequest: (queries) => dispatch(searchRequest({...queries})),\n inputChanged: (key, value) => dispatch(inputChanged({key: key, value: value})),\n fileTypeChanged: (key, value) => dispatch(fileTypeChanged({key: key, value: value})),\n resetQueries: () => dispatch(resetQueries()),\n handlePageChanged: (page) => dispatch(pageChanged(page)),\n handlePerPageChanged: (per_page) => dispatch(perPageChanged(per_page)),\n handleSortChanged: (sort) => dispatch(sortChanged(sort)),\n handleDownload: (file_name) => dispatch(downloadRequest(file_name)),\n handleUpgrade: (id) => dispatch(openUpgrade(id)),\n handleEdit: (id) => dispatch(openEdit(id)),\n openNew: () => dispatch(openNew()),\n handleExportCsv: (queries) => dispatch(exportCsvRequest({...queries})),\n autoLogin: (type) => dispatch(autoLoginRequest(type)),\n resetForm: () => dispatch(resetForm()),\n fetchCategories: () => dispatch(categoryAction.fetchRequest()),\n setLanguage: (lang) => dispatch(changeLanguage(lang)),\n handleUploadOK: () => dispatch(uploadCsvRequest()),\n handleUploadCancel: () => dispatch(setUploadFile(null)),\n uploadFileSelected: (file) => dispatch(setUploadFile(file))\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ManualList);\n","/*\r\n * フォーム:フォーム入力内容表示用コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nconst styles = (theme) => ({\r\n listItemText:{\r\n fontSize:'0.7em',//Insert your required size\r\n },\r\n});\r\n\r\nconst getListItem = (title, content, classes) => {\r\n const display = content==null ? false: true;\r\n return (\r\n
\r\n {\r\n display ?\r\n \r\n \r\n \r\n : null \r\n }\r\n
\r\n )\r\n}\r\n\r\nconst FormContent = (props) =>{\r\n const {classes} = props;\r\n const {manual, categories, models, new_serials, step} = props;\r\n return (\r\n
\r\n {\r\n step!==0 ?\r\n \r\n \r\n \r\n {getListItem(t('file_name'), manual.file_name, classes)}\r\n {getListItem(t('file_type'), manual.file_type, classes)}\r\n {getListItem(t('title_ja'), manual.title_ja, classes)}\r\n {getListItem(t('title_en'), manual.title_en, classes)}\r\n \r\n \r\n \r\n : ''\r\n }\r\n
\r\n )\r\n};\r\n\r\nFormContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(FormContent);\r\n","/*\r\n * フォーム:ファイル選択フォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport * as fileTypes from '../../constants/fileTypes';\r\nimport FileDropzone from '../FileDropzone';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n width: 400\r\n },\r\n});\r\n\r\nconst FileSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { file_type, title_ja, title_en, filename } = props;\r\n const { onFileSelected } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } label={t('UM')} />\r\n } label={t('PC')} />\r\n } label={t('PU')} />\r\n } label={t('SM')} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nFileSelectionForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(FileSelectionForm);\r\n","/*\r\n * 汎用:ダイアログ選択コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport {t} from 'i18next';\r\nimport SharedDialog from './Shared/SharedDialog';\r\nimport Chip from '@material-ui/core/Chip';\r\n\r\nfunction desc(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction stableSort(array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n}\r\n\r\nfunction getSorting(order, orderBy) {\r\n return order === 'desc' ? (a, b) => desc(a, b, orderBy) : (a, b) => -desc(a, b, orderBy);\r\n}\r\n\r\n\r\nclass EnhancedTableHead extends React.Component {\r\n createSortHandler = property => event => {\r\n this.props.onRequestSort(event, property);\r\n };\r\n\r\n render() {\r\n const { rows } = this.props;\r\n const { onSelectAllClick, order, orderBy, numSelected, rowCount } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n 0 && numSelected < rowCount}\r\n checked={numSelected === rowCount}\r\n onChange={onSelectAllClick}\r\n />\r\n \r\n {rows.map(row => {\r\n return (\r\n \r\n \r\n \r\n {row.label}\r\n \r\n \r\n \r\n );\r\n }, this)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: '100%',\r\n marginTop: theme.spacing.unit * 3,\r\n },\r\n table: {\r\n minWidth: 500,\r\n },\r\n tableWrapper: {\r\n overflowX: 'auto',\r\n },\r\n chip: {\r\n margin: theme.spacing.unit / 3,\r\n },\r\n});\r\n\r\nclass SelectableTable extends React.Component {\r\n state = {\r\n order: 'asc',\r\n orderBy: this.props.orderBy || null,\r\n page: 0,\r\n data: this.props.models,\r\n selected: this.props.selected || [],\r\n rowsPerPage: 5,\r\n };\r\n\r\n updateState(state){\r\n this.setState(state);\r\n }\r\n\r\n handleRequestSort = (event, property) => {\r\n const orderBy = property;\r\n let order = 'desc';\r\n\r\n if (this.state.orderBy === property && this.state.order === 'desc') {\r\n order = 'asc';\r\n }\r\n\r\n this.setState({ order, orderBy });\r\n };\r\n\r\n handleSelectAllClick = event => {\r\n if (event.target.checked) {\r\n this.setState(state => ({\r\n selected: this.props.data.map(n => {\r\n return n.id;\r\n })\r\n }));\r\n return;\r\n }\r\n this.setState({\r\n selected: []\r\n });\r\n };\r\n\r\n handleClick = (event, id) => {\r\n const { selected } = this.state;\r\n const selectedIndex = selected.indexOf(id);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, id);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n this.updateState({selected: newSelected});\r\n };\r\n\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n\r\n handleChangeRowsPerPage = event => {\r\n this.setState({ rowsPerPage: event.target.value });\r\n };\r\n\r\n isSelected = id => this.state.selected.indexOf(id) !== -1;\r\n\r\n getSelectedIds = (ids, data, displayKey) => {\r\n const merge = ids.map(id => {\r\n const item = data.find(x => x.id === id);\r\n if(item && item != 'undefined') {\r\n return {\r\n id: id,\r\n key: item[displayKey]\r\n }\r\n }\r\n return null;\r\n });\r\n return merge.filter(x => x !== null).sort((a,b)=>{\r\n return ('' + a.key).localeCompare(b.key);\r\n });\r\n }\r\n\r\n render() {\r\n const { classes, data, rows, dialogTitle, buttonTitle, displayField } = this.props;\r\n const { handleOK, handleOpen, handleCancel } = this.props;\r\n const { order, orderBy, rowsPerPage, page } = this.state;\r\n\r\n //選択中データの配列(ID)をhandleOKに渡します\r\n const _handleOK = () => {\r\n if(handleOK){\r\n handleOK(this.state.selected);\r\n }\r\n };\r\n\r\n const _handleOpen = () => {\r\n this.setState({\r\n selected: this.props.selected\r\n });\r\n }\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, data.length - page * rowsPerPage);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {stableSort(data, getSorting(order, orderBy))\r\n //.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map(n => {\r\n const isSelected = this.isSelected(n.id);\r\n return (\r\n {\r\n this.handleClick(event, n.id)\r\n }}\r\n role=\"checkbox\"\r\n aria-checked={isSelected}\r\n tabIndex={-1}\r\n key={dialogTitle + 'tr' + n.id}\r\n selected={isSelected}\r\n >\r\n \r\n \r\n \r\n {rows.map(row => (\r\n {n[row.id]}\r\n ))}\r\n \r\n );\r\n })}\r\n {emptyRows > 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.getSelectedIds(this.props.selected, data, displayField).map(\r\n item => {\r\n return (\r\n \r\n )\r\n }\r\n )\r\n\r\n /*\r\n this.props.selected.map(selectedIndex => {\r\n const row = data.find(x => x.id === selectedIndex);\r\n if(row){\r\n return (\r\n \r\n )\r\n }\r\n })\r\n */\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nSelectableTable.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles)(SelectableTable);\r\n","/*\r\n * フォーム:機種・バージョン入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\n\r\nconst styles = theme => ({\r\n version: {\r\n marginTop: theme.spacing.unit * 3,\r\n },\r\n dotRoot: {\r\n position: \"relative\",\r\n width: theme.spacing.unit,\r\n\r\n },\r\n dot: {\r\n position: \"absolute\",\r\n bottom: theme.spacing.unit,\r\n }\r\n})\r\n\r\nconst ModelSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { categories, models, manual, new_serials, selectedCategories } = props;\r\n const { handleSelectedCategories, handleSelectedModels, handleInputChange } = props;\r\n\r\n var ver1 = 0;\r\n var ver2 = 0;\r\n var ver3 = 0;\r\n\r\n if(manual && manual.version) {\r\n const ver_split = manual.version.split('.');\r\n if(ver_split.length >= 3) {\r\n ver1 = ver_split[0] || 0;\r\n ver2 = ver_split[1] || 0;\r\n ver3 = ver_split[2] || 0;\r\n }\r\n }\r\n\r\n //整数かどうか\r\n /*\r\n const isInteger = (x) => {\r\n return Math.round(x) === x;\r\n }\r\n //整数の場合は、桁数をそろえる\r\n const convertNumber = (x) => {\r\n const num = Number(x);\r\n if (isInteger(num)){\r\n return num.toFixed(1);\r\n }\r\n return num;\r\n }\r\n\r\n const abs = (x) => {\r\n const value = Math.round(x*10)/10;\r\n return value < 0 ? -value: value;\r\n }\r\n */\r\n\r\n const handleChangeInput = pos => event => {\r\n const val = Number(event.target.value).toFixed(0);\r\n if (val < 0 || 99 < val) return;\r\n let version = '';\r\n switch (pos) {\r\n case 0:\r\n version = `${val}.${ver2}.${ver3}`;\r\n break;\r\n case 1:\r\n version = `${ver1}.${val}.${ver3}`;\r\n break;\r\n case 2:\r\n version = `${ver1}.${ver2}.${val}`;\r\n break;\r\n default:\r\n return;\r\n }\r\n handleInputChange('version', version);\r\n }\r\n\r\n\r\n //カテゴリ選択用テーブルの列定義\r\n const categoryRows = [\r\n {id: 'category_short_name' , label: t('category_short_name') },\r\n {id: 'category_name' , label: t('category_name') },\r\n ]\r\n\r\n //機種選択用テーブルの列定義\r\n const modelRows = [\r\n {id: 'category_code' , label: t('category_code') },\r\n {id: 'model_code' , label: t('model_code') },\r\n ]\r\n\r\n const selectedModels = new_serials ? new_serials.map(serial => serial.model_id): []\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {t('version')}\r\n \r\n \r\n \r\n \r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default withStyles(styles)(ModelSelectionForm)\r\n","/*\n * フォーム:機番編集用コンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport {t} from 'i18next';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport Input from '@material-ui/core/Input';\nimport TextField from '@material-ui/core/TextField';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n minWidth: 500,\n tableLayout: \"auto\"\n },\n numberCell:{\n textAlign: \"right\",\n width: 80\n },\n});\n\n/*\ntype Serial = {\n model_id: number,\n model_name: string,\n manual_id: number,\n version: number,\n file_type: string,\n start_serial: number,\n end_serial: number,\n is_editable_start: boolean,\n is_editable_end: boolean,\n is_new: boolean\n}\n*/\n\nconst SerialForm = (props) => {\n const { classes } = props;\n const { rows } = props;\n const { handleSerialChanged, handlePastSerialChanged } = props;\n\n const onSerialChanged = (row, key) => (event) => {\n if(row.manual_id) {\n handlePastSerialChanged(row.manual_id, row.model_id, key, event.target.value);\n }\n else {\n handleSerialChanged(row.model_id, key, event.target.value);\n }\n }\n\n return (\n \n \n \n \n {t('models_name')}\n {t('file_type')}\n {t('version')}\n {t('start_serial')}\n {t('end_serial')}\n \n \n \n {rows.map((row, index) => (\n \n {row.model_name}\n {row.file_type}\n {row.version}\n \n {\n row.is_start_editable ?\n \t\t\t\t\t\t\n : row.start_serial\n }\n \n \n {\n row.is_end_editable ?\n \t\t\t\t\t\t\n : row.end_serial\n }\n \n \n ))}\n \n
\n
\n )\n}\n\nexport default withStyles(styles)(SerialForm);\n","/*\r\n * フォーム:マニュアル詳細入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\nimport FileDropzone from '../FileDropzone';\r\nimport { Checkbox } from '@material-ui/core';\r\n\r\nconst styles = (theme) => ({\r\n container: {\r\n width: '100%'\r\n },\r\n textField: {\r\n width: 200\r\n },\r\n multiTextField: {\r\n width: 300\r\n },\r\n});\r\n\r\nconst DetailForm = (props) => {\r\n const { classes } = props;\r\n const { handleInputChange, handleSelectedCountries, handleOnChangeLogFileSelected } = props;\r\n const { manual, countries, selectedCountries, changeLogFileName, showMessage } = props;\r\n\r\n const handleChangeInput = (name, maxLen = 50) => event => {\r\n const rawInput = event.target.value;\r\n if (String(rawInput).length <= maxLen) {\r\n handleInputChange(name, rawInput);\r\n } else {\r\n showMessage({\r\n type: 'warning',\r\n content: t('max_length_error', { maxLen: maxLen })\r\n });\r\n }\r\n }\r\n\r\n const handleChangeCheckbox = name => event => {\r\n handleInputChange(name, event.target.checked);\r\n }\r\n\r\n const handleChangePageNumber = name => event => {\r\n const rawInput = event.target.value;\r\n if (!rawInput) {\r\n handleInputChange(name, null);\r\n return;\r\n }\r\n let num = Number(rawInput).toFixed(0);\r\n if (num < 0) {\r\n num = 0;\r\n } else if (num > 999999999) {\r\n num = 999999999;\r\n }\r\n handleInputChange(name, num);\r\n }\r\n\r\n const rows = [\r\n { id: 'country_code', label: t('country_code') },\r\n { id: 'country_name', label: t('country_name') },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('do_display')}\r\n {t('do_not_display')}\r\n ))\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } label=\"オンラインマニュアル\" />\r\n }\r\n onChange={handleChangeCheckbox('is_allowed_online_document')}\r\n label=\"マニュアル参照システム\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDetailForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DetailForm);\r\n","/*\r\n * フォーム:戻るボタン\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport UndoIcon from '@material-ui/icons/Undo';\r\nimport {t} from 'i18next';\r\n\r\nconst styles = theme => ({\r\n actionButton: {\r\n margin: 0,\r\n top: 'auto',\r\n right: 20,\r\n bottom: 20,\r\n left: 'auto',\r\n position: 'fixed',\r\n },\r\n cancelText: {\r\n fontSize: 8,\r\n }\r\n})\r\n\r\nconst BackButton = (props) => {\r\n const { classes } = props;\r\n const { handleClick } = props;\r\n return (\r\n \r\n \r\n {t('cancel')}\r\n \r\n \r\n )\r\n}\r\n\r\nBackButton.propsType = {\r\n classes: PropTypes.object.isRequired,\r\n handleClick: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(BackButton);\r\n","/*\r\n * フォーム:削除ボタン\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport {t} from 'i18next';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nconst styles = theme => ({\r\n actionButton: {\r\n margin: 0,\r\n top: 80,\r\n right: 20,\r\n bottom: 'auto',\r\n left: 'auto',\r\n position: 'fixed',\r\n },\r\n deleteText: {\r\n fontSize: 8,\r\n }\r\n})\r\n\r\nconst DeleteButton = (props) => {\r\n const { classes } = props;\r\n const { id } = props;\r\n const { handleConfirm, handleDelete } = props;\r\n const confirmContent = {\r\n title: t('confirm'),\r\n content: t('delete_confirm'),\r\n actions: {\r\n ok: () => handleDelete(id)\r\n }\r\n }\r\n const handleClick = () => handleConfirm(confirmContent)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDeleteButton.propsType = {\r\n classes: PropTypes.object.isRequired,\r\n handleClick: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DeleteButton);\r\n","\r\nimport React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport ConfirmDialog from '../components/ConfirmDialog';\r\nimport DeleteButton from '../components/DeleteButton';\r\nimport * as manualModule from '../modules/manualForm';\r\nimport * as confirmModule from '../modules/confirm';\r\nimport {t} from 'i18next';\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n id: state.manualForm.manual.id,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleConfirm: (data) => dispatch(confirmModule.showConfirm(data)),\r\n handleDelete: (id) => dispatch(manualModule.deleteRequest(id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DeleteButton);\r\n","/*\r\n * フォーム:ステッパーフォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Divider from '@material-ui/core/Divider';\r\n\r\nimport FormContent from './FormContent';\r\nimport FileSelectionForm from './FileSelectionForm';\r\nimport ModelSelectionForm from './ModelSelectionForm';\r\n//import SerialEditForm from './SerialEditForm';\r\nimport SerialForm from '../SerialForm';\r\nimport DetailForm from './DetailForm';\r\nimport BackButton from '../BackButton';\r\nimport DeleteButton from '../../containers/DeleteButton';\r\nimport * as FormType from '../../constants/formTypes';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: '90%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing.unit,\r\n },\r\n instructions: {\r\n marginTop: theme.spacing.unit,\r\n marginBottom: theme.spacing.unit,\r\n },\r\n});\r\n\r\nconst Container = (props) => (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n);\r\n\r\n\r\n//バージョンでソートする\r\nconst sortByVersion = (a, b) => {\r\n const aSplit = a.split('.');\r\n const a1 = Number(aSplit[0]) || 0;\r\n const a2 = Number(aSplit[1]) || 0;\r\n const a3 = Number(aSplit[2]) || 0;\r\n const bSplit = b.split('.')\r\n const b1 = Number(bSplit[0]) || 0;\r\n const b2 = Number(bSplit[1]) || 0;\r\n const b3 = Number(bSplit[2]) || 0;\r\n //大小比較\r\n if ((a1 * 100 + a2 * 10 + a3) < (b1 * 100 + b2 * 10 + b3)) {\r\n return 1\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nconst getStepContent = (stepIndex, props) => {\r\n const { countries } = props;\r\n switch (stepIndex) {\r\n case 0:\r\n return (\r\n \r\n );\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n const newData = props.new_serials.map(serial => {\r\n return {\r\n ...serial,\r\n version: props.manual.version,\r\n file_type: props.manual.file_type,\r\n is_start_editable: true,\r\n is_end_editable: true,\r\n is_new: true,\r\n manual_id: null,\r\n model_id: serial.model_id,\r\n model_name: props.models.find(x => x.id === serial.model_id).model_code,\r\n }\r\n });\r\n\r\n const rows = props.serials.concat(newData).sort((a, b) => {\r\n return b.model_id - a.model_id || sortByVersion(a.version, b.version)\r\n });\r\n\r\n return (\r\n \r\n )\r\n case 3:\r\n return (\r\n \r\n );\r\n default:\r\n return 'Uknown stepIndex';\r\n }\r\n}\r\n\r\nconst ManualForm = (props) => {\r\n const { classes } = props;\r\n const { activeStep } = props;\r\n const { handleNext, handleBack, handleReset, handleBackTo } = props;\r\n const steps = [t('step1'), t('step2'), t('step3'), t('step4')];\r\n\r\n return (\r\n
\r\n \r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n {activeStep === steps.length ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {getStepContent(activeStep, props)}\r\n
\r\n \r\n {t('back')}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n props.manual.id && props.manual.is_latest && props.formType===FormType.EDIT ? \r\n \r\n : \"\"\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default withStyles(styles)(ManualForm);\r\n","import {connect} from 'react-redux';\r\n\r\nimport ManualForm from '../components/Manual/ManualForm';\r\nimport * as manualForm from '../modules/manualForm';\r\nimport * as messageModule from '../modules/message';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n activeStep: state.manualForm.activeStep,\r\n filename: state.manualForm.manual.file_name,\r\n manual: state.manualForm.manual,\r\n models: state.models.data || [],\r\n categories: state.categories.data || [],\r\n countries: state.countries.data || [],\r\n new_serials: state.manualForm.new_serials || [],\r\n serials: state.manualForm.serials || [],\r\n selectedCategories: state.manualForm.categories || [],\r\n selectedCountries: state.manualForm.countries || [],\r\n changeLogFileName: state.manualForm.manual.change_log_file_name,\r\n formType: state.manualForm.formType,\r\n isWaiting: state.manualForm.isLoading || state.manualForm.isUploading || state.manualForm.isDeleting\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n return {\r\n handleNext: () => dispatch(manualForm.stepNextRequest()),\r\n handleBack: () => dispatch(manualForm.stepBack()),\r\n handleReset: () => dispatch(manualForm.stepReset()),\r\n handleBackTo: () => dispatch(manualForm.backToList()),\r\n handleInputChange: (key, value) => dispatch(manualForm.inputChanged({key: key, value: value})),\r\n handleFileSelected: (file) => dispatch(manualForm.fileSelected(file)),\r\n handleSerialChanged: (modelId, key, value) =>\r\n dispatch(manualForm.serialChanged({modelId: modelId, key: key, value: value})),\r\n handlePastSerialChanged: (manualId, modelId, key, value) =>\r\n dispatch(manualForm.pastSerialChanged({manualId: manualId, modelId: modelId, key: key, value: value})),\r\n handleSelectedCategories: (ids) => dispatch(manualForm.categoriesSelected(ids)),\r\n handleSelectedModels: (ids) => dispatch(manualForm.modelsSelected(ids)),\r\n handleSelectedCountries: (ids) => dispatch(manualForm.countriesSelected(ids)),\r\n handleOnFileSelected: (file) => dispatch(manualForm.fileSelected(file)),\r\n handleOnChangeLogFileSelected: (file) => dispatch(manualForm.changeLogFileSelected(file)),\r\n showMessage: (data) => dispatch(messageModule.showMessage(data)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ManualForm);\r\n","import {connect} from 'react-redux';\n\nimport Login from '../../components/Login';\nimport * as catalogAuthModule from '../../modules/catalog/catalogAuth';\n\nconst mapStateToProps = (state) => {\n return {\n username: state.catalogAuth.form.username,\n passowrd: state.catalogAuth.form.password,\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n handleLogin: () => dispatch(catalogAuthModule.loginRequest()),\n handleAdminLogin: () => dispatch(catalogAuthModule.adminLoginRequest()),\n handleInputChange: (key, value) =>\n dispatch(catalogAuthModule.formChanged({key: key, value: value})),\n handleAutoAdminLogin: (cookie) => dispatch(catalogAuthModule.autoAdminLoginRequest(cookie))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","/*\n * リスト:マニュアル一覧表示用コンポーネント\n */\nimport React from 'react';\nimport Moment from 'react-moment';\nimport moment from 'moment'\nimport 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport i18next,{t} from 'i18next';\n\nimport CreateIcon from '@material-ui/icons/Create';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nimport { Popup, Pagination } from 'semantic-ui-react';\n\nimport AdminOnly from '../../containers/AdminOnly';\nimport NumberSelect from '../NumberSelect';\nimport Tooltip from '@material-ui/core/Tooltip';\n\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n tableLayout: 'fixed',\n },\n tableData: {\n wordBreak: 'break-all',\n },\n tableFooter: {\n marginTop: theme.spacing.unit,\n },\n rowSelected: {\n background: \"#FFF9C4 !important\",\n }\n});\n\n\nclass CatalogTable extends React.Component {\n state = {\n checkedRow: null\n }\n\n SelectRow = (id) => {\n this.setState({checkedRow: id});\n }; \n \n constructor (props) {{\n super(props);\n }}\n\n render() {\n const { classes } = this.props;\n const { resources, page, per_page, count, isSuperuser} = this.props;\n const { handlePageChanged, handlePerPageChanged, handleSortChanged } = this.props;\n const { handleOpenPDF, handleDownload, handleUpgrade, handleEdit } = this.props;\n const { sort } = this.props;\n\n //合計ページ数\n let totalPages = Math.floor(count / per_page);\n if(count % per_page !== 0) {\n totalPages++;\n }\n //権限によってヘッダー情報を変更する\n const getHeaders = () => {\n if (isSuperuser) {\n return adminHeaders;\n }\n else {\n return clientHeaders;\n }\n }\n\n //ページ変更イベント\n const handleChangePage = (event, page) => {\n handlePageChanged(page.activePage);\n };\n\n //表示件数変更イベント\n const handleChangeRowsPerPage = event => {\n handlePerPageChanged(event.target.value);\n };\n\n const onRequestSort = (event, property) => {\n handleSortChanged(property);\n }\n\n const createSortHandler = property => event => {\n onRequestSort(event, property);\n }\n\n\n //表示内容を項目に応じて切り分ける\n const createTableCell = (row, id) => {\n\n switch (id) {\n case 'serials':\n return (\n row.serials.map(item =>{\n return (\n
{item.model_code}: {item.start_serial} ~ {item.end_serial}
\n )}\n )\n )\n case 'version':\n const xSplit = String(row[id]).split('.');\n const x1 = xSplit[0] || '0';\n const x2 = xSplit[1] || '0';\n const x3 = xSplit[2] || '0';\n if(isSuperuser) {\n return `${x1}.${x2}.${x3}`;\n }else{\n return `${x1}.${x2}`;\n }\n return (Number(row[id]).toFixed(1))\n case 'display':\n const isDisplay = row[id];\n if (isDisplay){\n return (t('do_display'))\n }\n else {\n return (t('do_not_display'))\n }\n case 'updated_at':\n return (\n \n {moment(row[id])}\n \n )\n case 'actions':\n return (\n \n \n handleEdit(row.id)}\n >\n \n {t('edit')}\n \n {\n row.is_latest ?\n handleUpgrade(row.id)}\n >\n \n {t('upgrade')}\n \n : ''\n }\n \n \n handleOpenPDF(row.file_name)}\n >\n \n {t('download')}\n \n \n \n )\n default:\n return (row[id])\n }\n }\n\n let title='title_ja';\n if(i18next.language!=='ja'){\n title = 'title_en';\n }\n\n let overview = 'overview_ja';\n if(i18next.language!=='ja') {\n overview = 'overview_en';\n }\n\n //管理者用ヘッダー定義\n const adminHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"\", width: \"200px\"},\n {id: 'display', label: t('display'), width: \"150px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'categories', label: t('category_code'), width: \"140px\"},\n {id: 'destination', label: t('destination'), width: \"140px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n {id: 'updated_at', label: t('updated_at'), width: \"150px\"},\n ];\n\n //販売店用ヘッダー定義\n const clientHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"PDF\", width: \"200px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'categories', label: t('category_code'), width: \"140px\"},\n {id: 'destination', label: t('destination'), width: \"140px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n ];\n\n return (\n
\n \n \n \n \n {getHeaders().map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n \n {t('catalog_data')}\n \n \n \n \n \n \n {resources.map(row => {\n return (\n {\n this.SelectRow(row.id);\n }}>\n {\n getHeaders().map(item => (\n \n {createTableCell(row, item.id)}\n \n ))\n }\n \n \n {\n row.zip_file_name ?\n handleDownload(row.zip_file_name)}\n >\n \n {t('download')}\n \n : ''\n }\n \n \n \n }\n />\n );\n })}\n \n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nCatalogTable.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(CatalogTable);\n","/*\n * リスト:一覧画面の検索フォームコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {t} from 'i18next';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport SearchIcon from '@material-ui/icons/Search';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport AdminOnly from '../../containers/AdminOnly';\n\nimport MultiSelect from '../../components/MultiSelect';\nimport CountriesImportDialog from '../Shared/CountriesImportDialog';\n\nconst styles = theme => ({\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: 200,\n },\n searchButton: {\n float: 'right',\n margin: theme.spacing.unit * 1,\n },\n});\n\nconst SearchForm = props => {\n const { classes } = props;\n const { queries } = props;\n const { file_types } = props.queries;\n const { handleSubmit, handleInputChange, handleFileTypeChange, handleExportCsv } = props;\n const { categories } = props;\n const { uploadFileName, uploadFileSelected, handleUploadOK, handleUploadCancel} = props;\n\n const handleChangeInput = name => event => {\n handleInputChange(name, event.target.value);\n }\n\n const handleChangeCategories = name => ids => {\n handleInputChange(name, ids);\n }\n\n const handleChangeSwitch = name => event => {\n handleInputChange(name, event.target.checked);\n };\n\n const handleChangeCheckbox = name => event => {\n handleFileTypeChange(name, event.target.checked);\n }\n\n return (\n \n \n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nSearchForm.propTypes = {\n queries: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n handleInputChange: PropTypes.func.isRequired,\n handleFileTypeChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(SearchForm);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport CreateButton from '../../components/CreateButton';\nimport CatalogTable from '../../components/Catalog/CatalogTable';\nimport CatalogSearchForm from '../../components/Catalog/CatalogSearchForm';\nimport AdminOnly from '../AdminOnly';\n\nimport { searchRequest, exportCsvRequest, inputChanged, fileTypeChanged, resetQueries, sortChanged,\n downloadRequest, pageChanged, perPageChanged,\n setUploadFile, uploadCsvRequest } from '../../modules/catalog/catalogList';\nimport { openNew, openUpgrade, openEdit, resetForm } from '../../modules/catalog/catalogForm';\nimport { autoLoginRequest, changeLanguage } from '../../modules/catalog/catalogAuth';\nimport * as categoryAction from '../../modules/categories';\nimport { openPDF } from '../../services/pdf.service';\n\n\nclass CatalogList extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n if (!this.props.isLoggedIn) {\n const {params} = this.props.match;\n\n //クエリパラメータから言語情報の取得(?lang=en/ja)\n const qparams = new URLSearchParams(this.props.location.search);\n const lang = qparams.get('lang'); \n this.props.setLanguage(lang);\n\n if (params.type) {\n this.props.autoLogin(params.type);\n }\n }\n this.props.resetForm();\n this.props.fetchCategories();\n this.props.searchRequest(this.props.queries);\n }\n\n render () {\n const props = this.props;\n return (\n
\n {\n return {\n key : category.id,\n value : category.category_short_name\n }})}\n uploadFileName={props.uploadFileName}\n uploadFileSelected={props.uploadFileSelected}\n handleUploadOK={props.handleUploadOK}\n handleUploadCancel={props.handleUploadCancel}\n />\n openPDF(filename)}\n handleDownload={props.handleDownload}\n handleUpgrade={props.handleUpgrade}\n handleEdit={props.handleEdit}\n handleSortChanged={props.handleSortChanged}\n />\n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = state => ({\n isLoggedIn: state.auth.isLoggedIn,\n isLoading: state.catalogList.isLoading,\n queries: state.catalogList.queries,\n resources: state.catalogList.data.catalogs || [],\n count: state.catalogList.data.count || 0,\n page: state.catalogList.queries.page,\n per_page: state.catalogList.queries.per_page,\n isSuperuser: state.auth.account.is_superuser,\n categories: state.categories.data || [],\n uploadFileName: state.catalogList.upload_file ?state.catalogList.upload_file.name: \"\",\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n searchRequest: (queries) => dispatch(searchRequest({...queries})),\n inputChanged: (key, value) => dispatch(inputChanged({key: key, value: value})),\n fileTypeChanged: (key, value) => dispatch(fileTypeChanged({key: key, value: value})),\n resetQueries: () => dispatch(resetQueries()),\n handlePageChanged: (page) => dispatch(pageChanged(page)),\n handlePerPageChanged: (per_page) => dispatch(perPageChanged(per_page)),\n handleSortChanged: (sort) => dispatch(sortChanged(sort)),\n handleDownload: (file_name) => dispatch(downloadRequest(file_name)),\n handleUpgrade: (id) => dispatch(openUpgrade(id)),\n handleEdit: (id) => dispatch(openEdit(id)),\n openNew: () => dispatch(openNew()),\n handleExportCsv: (queries) => dispatch(exportCsvRequest({...queries})),\n autoLogin: (type) => dispatch(autoLoginRequest(type)),\n resetForm: () => dispatch(resetForm()),\n fetchCategories: () => dispatch(categoryAction.fetchRequest()),\n setLanguage: (lang) => dispatch(changeLanguage(lang)),\n handleUploadOK: () => dispatch(uploadCsvRequest()),\n handleUploadCancel: () => dispatch(setUploadFile(null)),\n uploadFileSelected: (file) => dispatch(setUploadFile(file))\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(CatalogList);\n","/*\r\n * フォーム:フォーム入力内容表示用コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nconst styles = (theme) => ({\r\n listItemText:{\r\n fontSize:'0.7em',//Insert your required size\r\n },\r\n});\r\n\r\nconst getListItem = (title, content, classes) => {\r\n const display = content==null ? false: true;\r\n return (\r\n
\r\n {\r\n display ?\r\n \r\n \r\n \r\n : null \r\n }\r\n
\r\n )\r\n}\r\n\r\nconst CatalogFormContent = (props) =>{\r\n const {classes} = props;\r\n const {manual, step} = props;\r\n return (\r\n
\r\n {\r\n step!==0 ?\r\n \r\n \r\n \r\n {getListItem(t('file_name'), manual.file_name, classes)}\r\n \r\n \r\n \r\n : ''\r\n }\r\n
\r\n )\r\n};\r\n\r\nCatalogFormContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(CatalogFormContent);\r\n","/*\r\n * フォーム:ファイル選択フォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FileDropzone from '../FileDropzone';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n width: 400\r\n },\r\n});\r\n\r\nconst CatalogFileSelectionForm = (props) => {\r\n const { filename } = props;\r\n const { onFileSelected } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCatalogFileSelectionForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(CatalogFileSelectionForm);\r\n","/*\r\n * フォーム:機種・バージョン入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\n\r\nconst styles = theme => ({\r\n version: {\r\n marginTop: theme.spacing.unit * 3,\r\n },\r\n dotRoot: {\r\n position: \"relative\",\r\n width: theme.spacing.unit,\r\n\r\n },\r\n dot: {\r\n position: \"absolute\",\r\n bottom: theme.spacing.unit,\r\n }\r\n})\r\n\r\nconst CatalogModelSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { categories, models, catalog, new_serials, selectedCategories, selectedModels } = props;\r\n const { handleSelectedCategories, handleSelectedModels, handleInputChange } = props;\r\n\r\n var ver1 = 0;\r\n var ver2 = 0;\r\n var ver3 = 0;\r\n\r\n if(catalog && catalog.version) {\r\n const ver_split = catalog.version.split('.');\r\n if(ver_split.length >= 3) {\r\n ver1 = ver_split[0] || 0;\r\n ver2 = ver_split[1] || 0;\r\n ver3 = ver_split[2] || 0;\r\n }\r\n }\r\n\r\n //整数かどうか\r\n /*\r\n const isInteger = (x) => {\r\n return Math.round(x) === x;\r\n }\r\n //整数の場合は、桁数をそろえる\r\n const convertNumber = (x) => {\r\n const num = Number(x);\r\n if (isInteger(num)){\r\n return num.toFixed(1);\r\n }\r\n return num;\r\n }\r\n\r\n const abs = (x) => {\r\n const value = Math.round(x*10)/10;\r\n return value < 0 ? -value: value;\r\n }\r\n */\r\n\r\n const handleChangeInput = pos => event => {\r\n const val = Number(event.target.value).toFixed(0);\r\n if (val < 0 || 99 < val) return;\r\n let version = '';\r\n switch (pos) {\r\n case 0:\r\n version = `${val}.${ver2}.${ver3}`;\r\n break;\r\n case 1:\r\n version = `${ver1}.${val}.${ver3}`;\r\n break;\r\n case 2:\r\n version = `${ver1}.${ver2}.${val}`;\r\n break;\r\n default:\r\n return;\r\n }\r\n handleInputChange('version', version);\r\n }\r\n\r\n\r\n //カテゴリ選択用テーブルの列定義\r\n const categoryRows = [\r\n {id: 'category_short_name' , label: t('category_short_name') },\r\n {id: 'category_name' , label: t('category_name') },\r\n ]\r\n\r\n //機種選択用テーブルの列定義\r\n const modelRows = [\r\n {id: 'category_code' , label: t('category_code') },\r\n {id: 'model_code' , label: t('model_code') },\r\n ]\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(CatalogModelSelectionForm)\r\n","/*\r\n * 汎用:ファイル入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport Dropzone from 'react-dropzone';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport classNames from 'classnames';\r\nimport {t} from 'i18next';\r\nimport axios from 'axios';\r\nimport {HOST} from '../constants/api';\r\n\r\nconst styles = (theme) => ({\r\n draggableArea: {\r\n width: 400,\r\n height: 80,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderWidth: 2,\r\n borderColor: '#ccc',\r\n borderStyle: 'solid',\r\n borderRadius: 5,\r\n },\r\n filename: {\r\n fontSize: 12,\r\n },\r\n title: {\r\n fontSize: 13,\r\n coloe: '#ccc',\r\n }\r\n});\r\n\r\nconst ZipFileDropzone = (props) => {\r\n const { classes } = props;\r\n const { filename } = props;\r\n const { onFileSelected } = props;\r\n\r\n const { title } = props;\r\n\r\n const onDrop = (files) => {\r\n const file = files[0];\r\n if(!file) {\r\n alert(t('file_input_error'));\r\n return;\r\n }\r\n onFileSelected(file);\r\n }\r\n\r\n return (\r\n \r\n {({getRootProps, getInputProps, isDragActive}) => {\r\n return (\r\n
\r\n {title ? : \"\"}\r\n
\r\n \r\n {\r\n isDragActive ?\r\n
{t('zip_file_drop_area')}
:\r\n
{t('zip_file_drop_here')}
\r\n }\r\n
\r\n
{(filename && filename!=='') ? t('file_name') + ':' + filename : ''}
\r\n
\r\n )\r\n }}\r\n
\r\n )\r\n}\r\n\r\nexport default withStyles(styles)(ZipFileDropzone);\r\n","/*\r\n * フォーム:マニュアル詳細入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\nimport ZipFileDropzone from '../ZipFileDropzone';\r\n\r\nconst styles = (theme) => ({\r\n textField: {\r\n width: 200\r\n },\r\n multiTextField: {\r\n width: 300\r\n },\r\n});\r\n\r\nconst CatalogDetailForm = (props) => {\r\n const { classes } = props;\r\n const { handleInputChange, handleSelectedCountries, handleOnChangeLogFileSelected } = props;\r\n const { manual, countries, selectedCountries, zipFileName, showMessage } = props;\r\n\r\n const handleChangeInput = (name, maxLen=50) => event => {\r\n const rawInput = event.target.value;\r\n if(String(rawInput).length <= maxLen){\r\n handleInputChange(name, rawInput);\r\n }else{\r\n showMessage({\r\n type: 'warning',\r\n content: t('max_length_error', {maxLen:maxLen})\r\n });\r\n }\r\n }\r\n\r\n const handleChangePageNumber = name => event => {\r\n const rawInput = event.target.value;\r\n if(!rawInput){\r\n handleInputChange(name, null);\r\n return;\r\n }\r\n let num = Number(rawInput).toFixed(0);\r\n if (num < 0) {\r\n num = 0;\r\n } else if (num > 999999999) {\r\n num = 999999999;\r\n }\r\n handleInputChange(name, num);\r\n }\r\n\r\n const rows = [\r\n {id: 'country_code', label: t('country_code') },\r\n {id: 'country_name', label: t('country_name') },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('do_display')}\r\n {t('do_not_display')}\r\n ))\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nCatalogDetailForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(CatalogDetailForm);\r\n","\r\nimport React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport ConfirmDialog from '../../components/ConfirmDialog';\r\nimport DeleteButton from '../../components/DeleteButton';\r\nimport * as catalogModule from '../../modules/catalog/catalogForm';\r\nimport * as confirmModule from '../../modules/confirm';\r\nimport {t} from 'i18next';\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n id: state.catalogForm.catalog.id,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleConfirm: (data) => dispatch(confirmModule.showConfirm(data)),\r\n handleDelete: (id) => dispatch(catalogModule.deleteRequest(id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DeleteButton);\r\n","/*\r\n * フォーム:ステッパーフォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Divider from '@material-ui/core/Divider';\r\n\r\nimport CatalogFormContent from './CatalogFormContent';\r\nimport CatalogFileSelectionForm from './CatalogFileSelectionForm';\r\nimport CatalogModelSelectionForm from './CatalogModelSelectionForm';\r\n//import SerialEditForm from './SerialEditForm';\r\nimport CatalogDetailForm from './CatalogDetailForm';\r\nimport BackButton from '../BackButton';\r\nimport CatalogDeleteButton from '../../containers/Catalog/CatalogDeleteButton';\r\nimport * as FormType from '../../constants/formTypes';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: '90%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing.unit,\r\n },\r\n instructions: {\r\n marginTop: theme.spacing.unit,\r\n marginBottom: theme.spacing.unit,\r\n },\r\n});\r\n\r\nconst Container = (props) => (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n);\r\n\r\n\r\n//バージョンでソートする\r\nconst sortByVersion = (a, b) => {\r\n const aSplit = a.split('.');\r\n const a1 = Number(aSplit[0]) || 0;\r\n const a2 = Number(aSplit[1]) || 0;\r\n const a3 = Number(aSplit[2]) || 0;\r\n const bSplit = b.split('.')\r\n const b1 = Number(bSplit[0]) || 0;\r\n const b2 = Number(bSplit[1]) || 0;\r\n const b3 = Number(bSplit[2]) || 0;\r\n //大小比較\r\n if ((a1 * 100 + a2 * 10 + a3) < (b1 * 100 + b2 * 10 + b3)) {\r\n return 1\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nconst getStepContent = (stepIndex, props) => {\r\n const { countries } = props;\r\n switch (stepIndex) {\r\n case 0:\r\n return (\r\n \r\n );\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n );\r\n default:\r\n return 'Uknown stepIndex';\r\n }\r\n}\r\n\r\nconst CatalogForm = (props) => {\r\n const { classes } = props;\r\n const { activeStep } = props;\r\n const { handleNext, handleBack, handleReset, handleBackTo } = props;\r\n const steps = [t('step1'), t('category_model_settings'), t('step4')];\r\n\r\n return (\r\n
\r\n \r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n {activeStep === steps.length ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {getStepContent(activeStep, props)}\r\n
\r\n \r\n {t('back')}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n props.catalog.id && props.formType===FormType.EDIT ? \r\n \r\n : \"\"\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default withStyles(styles)(CatalogForm);\r\n","import {connect} from 'react-redux';\r\nimport CatalogForm from '../../components/Catalog/CatalogForm';\r\n\r\nimport * as catalogForm from '../../modules/catalog/catalogForm';\r\nimport * as messageModule from '../../modules/message';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n activeStep: state.catalogForm.activeStep,\r\n filename: state.catalogForm.catalog.file_name,\r\n catalog: state.catalogForm.catalog,\r\n models: state.models.data || [],\r\n categories: state.categories.data || [],\r\n countries: state.countries.data || [],\r\n new_serials: state.catalogForm.new_serials || [],\r\n serials: state.catalogForm.serials || [],\r\n selectedCategories: state.catalogForm.categories || [],\r\n selectedCountries: state.catalogForm.countries || [],\r\n selectedModels: state.catalogForm.models || [],\r\n zipFileName: state.catalogForm.catalog.zip_file_name,\r\n formType: state.catalogForm.formType,\r\n isWaiting: state.catalogForm.isLoading || state.catalogForm.isUploading || state.catalogForm.isDeleting\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n return {\r\n handleNext: () => dispatch(catalogForm.stepNextRequest()),\r\n handleBack: () => dispatch(catalogForm.stepBack()),\r\n handleReset: () => dispatch(catalogForm.stepReset()),\r\n handleBackTo: () => dispatch(catalogForm.backToList()),\r\n handleInputChange: (key, value) => dispatch(catalogForm.inputChanged({key: key, value: value})),\r\n handleFileSelected: (file) => dispatch(catalogForm.fileSelected(file)),\r\n handleSerialChanged: (modelId, key, value) =>\r\n dispatch(catalogForm.serialChanged({modelId: modelId, key: key, value: value})),\r\n handlePastSerialChanged: (catalogId, modelId, key, value) =>\r\n dispatch(catalogForm.pastSerialChanged({catalogForm: catalogId, modelId: modelId, key: key, value: value})),\r\n handleSelectedCategories: (ids) => dispatch(catalogForm.categoriesSelected(ids)),\r\n handleSelectedModels: (ids) => dispatch(catalogForm.modelsSelected(ids)),\r\n handleSelectedCountries: (ids) => dispatch(catalogForm.countriesSelected(ids)),\r\n handleOnFileSelected: (file) => dispatch(catalogForm.fileSelected(file)),\r\n handleOnChangeLogFileSelected: (file) => dispatch(catalogForm.changeLogFileSelected(file)),\r\n showMessage: (data) => dispatch(messageModule.showMessage(data)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CatalogForm);\r\n","import {connect} from 'react-redux';\n\nimport Login from '../../components/Login';\nimport * as docAuthModule from '../../modules/doc/docAuth';\n\nconst mapStateToProps = (state) => {\n return {\n username: state.docAuth.form.username,\n passowrd: state.docAuth.form.password,\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n handleLogin: () => dispatch(docAuthModule.loginRequest()),\n handleAdminLogin: () => dispatch(docAuthModule.adminLoginRequest()),\n handleInputChange: (key, value) =>\n dispatch(docAuthModule.formChanged({key: key, value: value})),\n handleAutoAdminLogin: (cookie) => dispatch(docAuthModule.autoAdminLoginRequest(cookie))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","/*\n * リスト:マニュアル一覧表示用コンポーネント\n */\nimport React from 'react';\nimport Moment from 'react-moment';\nimport moment from 'moment'\nimport 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport i18next,{t} from 'i18next';\n\nimport CreateIcon from '@material-ui/icons/Create';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nimport { Popup, Pagination } from 'semantic-ui-react';\n\nimport AdminOnly from '../../containers/AdminOnly';\nimport NumberSelect from '../NumberSelect';\nimport Tooltip from '@material-ui/core/Tooltip';\n\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n tableLayout: 'fixed',\n },\n tableData: {\n wordBreak: 'break-all',\n },\n tableFooter: {\n marginTop: theme.spacing.unit,\n },\n rowSelected: {\n background: \"#FFF9C4 !important\",\n }\n});\n\n\nclass DocTable extends React.Component {\n state = {\n checkedRow: null\n }\n\n SelectRow = (id) => {\n this.setState({checkedRow: id});\n }; \n \n constructor (props) {{\n super(props);\n }}\n\n render() {\n const { classes } = this.props;\n const { resources, page, per_page, count, isSuperuser} = this.props;\n const { handlePageChanged, handlePerPageChanged, handleSortChanged } = this.props;\n const { handleOpenPDF, handleDownload, handleUpgrade, handleEdit } = this.props;\n const { sort } = this.props;\n\n //合計ページ数\n let totalPages = Math.floor(count / per_page);\n if(count % per_page !== 0) {\n totalPages++;\n }\n //権限によってヘッダー情報を変更する\n const getHeaders = () => {\n if (isSuperuser) {\n return adminHeaders;\n }\n else {\n return clientHeaders;\n }\n }\n\n //ページ変更イベント\n const handleChangePage = (event, page) => {\n handlePageChanged(page.activePage);\n };\n\n //表示件数変更イベント\n const handleChangeRowsPerPage = event => {\n handlePerPageChanged(event.target.value);\n };\n\n const onRequestSort = (event, property) => {\n handleSortChanged(property);\n }\n\n const createSortHandler = property => event => {\n onRequestSort(event, property);\n }\n\n\n //表示内容を項目に応じて切り分ける\n const createTableCell = (row, id) => {\n\n switch (id) {\n case 'serials':\n return (\n row.serials.map(item =>{\n return (\n
{item.model_code}: {item.start_serial} ~ {item.end_serial}
\n )}\n )\n )\n case 'display':\n const isDisplay = row[id];\n if (isDisplay){\n return (t('do_display'))\n }\n else {\n return (t('do_not_display'))\n }\n case 'updated_at':\n return (\n \n {moment(row[id])}\n \n )\n case 'actions':\n return (\n \n \n handleEdit(row.id)}\n >\n \n {t('edit')}\n \n \n \n handleOpenPDF(row.file_name)}\n >\n \n {t('download')}\n \n \n \n )\n default:\n return (row[id])\n }\n }\n\n let title='title_ja';\n if(i18next.language!=='ja'){\n title = 'title_en';\n }\n\n let overview = 'overview_ja';\n if(i18next.language!=='ja') {\n overview = 'overview_en';\n }\n\n //管理者用ヘッダー定義\n const adminHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"\", width: \"200px\"},\n {id: 'display', label: t('display'), width: \"150px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'file_type', label: t('type'), width: \"140px\"},\n {id: 'declaration_date', label: t('declaration_date'), width: \"140px\"},\n {id: 'compiler', label: t('compiler'), width: \"200px\"},\n {id: 'control_number', label: t('control_number'), width: \"200px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n {id: 'updated_at', label: t('updated_at'), width: \"150px\"},\n ];\n\n //販売店用ヘッダー定義\n const clientHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"PDF\", width: \"200px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'file_type', label: t('type'), width: \"140px\"},\n {id: 'declaration_date', label: t('declaration_date'), width: \"200px\"},\n {id: 'compiler', label: t('compiler'), width: \"200px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n ];\n\n return (\n
\n \n \n \n \n {getHeaders().map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n \n {resources.map(row => {\n return (\n {\n this.SelectRow(row.id);\n }}>\n {\n getHeaders().map(item => (\n \n {createTableCell(row, item.id)}\n \n ))\n }\n \n }\n />\n );\n })}\n \n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nDocTable.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(DocTable);\n","/*\n * リスト:一覧画面の検索フォームコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {t} from 'i18next';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport SearchIcon from '@material-ui/icons/Search';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport AdminOnly from '../../containers/AdminOnly';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport MultiSelect from '../MultiSelect';\nimport CountriesImportDialog from '../Shared/CountriesImportDialog';\n\nconst styles = theme => ({\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: 200,\n },\n searchButton: {\n float: 'right',\n margin: theme.spacing.unit * 1,\n },\n});\n\nconst SearchForm = props => {\n const { classes } = props;\n const { queries } = props;\n const { file_types } = props.queries;\n const { handleSubmit, handleInputChange, handleFileTypeChange, handleExportCsv } = props;\n const { categories } = props;\n const { uploadFileName, uploadFileSelected, handleUploadOK, handleUploadCancel} = props;\n\n const handleChangeInput = name => event => {\n handleInputChange(name, event.target.value);\n }\n\n const handleChangeCategories = name => ids => {\n handleInputChange(name, ids);\n }\n\n const handleChangeSwitch = name => event => {\n handleInputChange(name, event.target.checked);\n };\n\n const handleChangeCheckbox = name => event => {\n handleFileTypeChange(name, event.target.checked);\n }\n\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n }\n label={t('US')}\n />\n \n }\n label={t('UK')}\n />\n \n }\n label={t('EU')}\n />\n \n
\n
\n \n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nSearchForm.propTypes = {\n queries: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n handleInputChange: PropTypes.func.isRequired,\n handleFileTypeChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(SearchForm);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport CreateButton from '../../components/CreateButton';\nimport DocTable from '../../components/Doc/DocTable';\nimport DocSearchForm from '../../components/Doc/DocSearchForm';\nimport AdminOnly from '../AdminOnly';\n\nimport { searchRequest, exportCsvRequest, inputChanged, fileTypeChanged, resetQueries, sortChanged,\n downloadRequest, pageChanged, perPageChanged, \n setUploadFile, uploadCsvRequest } from '../../modules/doc/docList';\nimport { openNew, openUpgrade, openEdit, resetForm } from '../../modules/doc/docForm';\nimport { autoLoginRequest, changeLanguage } from '../../modules/doc/docAuth';\nimport * as categoryAction from '../../modules/categories';\nimport { useLocation } from 'react-router';\nimport { openPDF } from '../../services/pdf.service';\n\n\nclass DocList extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n if (!this.props.isLoggedIn) {\n const {params} = this.props.match;\n\n //クエリパラメータから言語情報の取得(?lang=en/ja)\n const qparams = new URLSearchParams(this.props.location.search);\n const lang = qparams.get('lang'); \n this.props.setLanguage(lang);\n\n if (params.type) {\n this.props.autoLogin(params.type);\n }\n }\n this.props.resetForm();\n this.props.fetchCategories();\n this.props.searchRequest(this.props.queries);\n }\n\n render () {\n const props = this.props;\n return (\n
\n {\n return {\n key : category.id,\n value : category.category_short_name\n }})}\n uploadFileName={props.uploadFileName}\n uploadFileSelected={props.uploadFileSelected}\n handleUploadOK={props.handleUploadOK}\n handleUploadCancel={props.handleUploadCancel}\n />\n openPDF(filename)}\n handleDownload={props.handleDownload}\n handleUpgrade={props.handleUpgrade}\n handleEdit={props.handleEdit}\n handleSortChanged={props.handleSortChanged}\n />\n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = state => ({\n isLoggedIn: state.auth.isLoggedIn,\n isLoading: state.docList.isLoading,\n queries: state.docList.queries,\n resources: state.docList.data.docs || [],\n count: state.docList.data.count || 0,\n page: state.docList.queries.page,\n per_page: state.docList.queries.per_page,\n isSuperuser: state.auth.account.is_superuser,\n categories: state.categories.data || [],\n uploadFileName: state.docList.upload_file ?state.docList.upload_file.name: \"\",\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n searchRequest: (queries) => dispatch(searchRequest({...queries})),\n inputChanged: (key, value) => dispatch(inputChanged({key: key, value: value})),\n fileTypeChanged: (key, value) => dispatch(fileTypeChanged({key: key, value: value})),\n resetQueries: () => dispatch(resetQueries()),\n handlePageChanged: (page) => dispatch(pageChanged(page)),\n handlePerPageChanged: (per_page) => dispatch(perPageChanged(per_page)),\n handleSortChanged: (sort) => dispatch(sortChanged(sort)),\n handleDownload: (file_name) => dispatch(downloadRequest(file_name)),\n handleUpgrade: (id) => dispatch(openUpgrade(id)),\n handleEdit: (id) => dispatch(openEdit(id)),\n openNew: () => dispatch(openNew()),\n handleExportCsv: (queries) => dispatch(exportCsvRequest({...queries})),\n autoLogin: (type) => dispatch(autoLoginRequest(type)),\n resetForm: () => dispatch(resetForm()),\n fetchCategories: () => dispatch(categoryAction.fetchRequest()),\n setLanguage: (lang) => dispatch(changeLanguage(lang)),\n handleUploadOK: () => dispatch(uploadCsvRequest()),\n handleUploadCancel: () => dispatch(setUploadFile(null)),\n uploadFileSelected: (file) => dispatch(setUploadFile(file))\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(DocList);\n","/*\r\n * フォーム:フォーム入力内容表示用コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nconst styles = (theme) => ({\r\n listItemText:{\r\n fontSize:'0.7em',//Insert your required size\r\n },\r\n});\r\n\r\nconst getListItem = (title, content, classes) => {\r\n const display = content==null ? false: true;\r\n return (\r\n
\r\n {\r\n display ?\r\n \r\n \r\n \r\n : null \r\n }\r\n
\r\n )\r\n}\r\n\r\nconst DocFormContent = (props) =>{\r\n const {classes} = props;\r\n const {doc, step} = props;\r\n return (\r\n
\r\n {\r\n step!==0 ?\r\n \r\n \r\n \r\n {getListItem(t('file_name'), doc.file_name, classes)}\r\n {getListItem(t('file_type'), doc.file_type, classes)}\r\n {getListItem(t('title_ja'), doc.title_ja, classes)}\r\n {getListItem(t('title_en'), doc.title_en, classes)}\r\n \r\n \r\n \r\n : ''\r\n }\r\n
\r\n )\r\n};\r\n\r\nDocFormContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DocFormContent);\r\n","/*\r\n * フォーム:ファイル選択フォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport * as docTypes from '../../constants/docTypes';\r\nimport FileDropzone from '../FileDropzone';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n width: 400\r\n },\r\n});\r\n\r\nconst DocFileSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { file_type, title_ja, title_en, filename } = props;\r\n const { onFileSelected } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } label={t('US')} />\r\n } label={t('UK')} />\r\n } label={t('EU')} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nDocFileSelectionForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DocFileSelectionForm);\r\n","/*\r\n * フォーム:機種・バージョン入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\n\r\nconst styles = theme => ({\r\n version: {\r\n marginTop: theme.spacing.unit * 3,\r\n },\r\n dotRoot: {\r\n position: \"relative\",\r\n width: theme.spacing.unit,\r\n\r\n },\r\n dot: {\r\n position: \"absolute\",\r\n bottom: theme.spacing.unit,\r\n }\r\n})\r\n\r\nconst DocModelSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { categories, models, catalog, new_serials, selectedCategories } = props;\r\n const { handleSelectedCategories, handleSelectedModels, handleInputChange } = props;\r\n\r\n var ver1 = 0;\r\n var ver2 = 0;\r\n var ver3 = 0;\r\n\r\n if(catalog && catalog.version) {\r\n const ver_split = catalog.version.split('.');\r\n if(ver_split.length >= 3) {\r\n ver1 = ver_split[0] || 0;\r\n ver2 = ver_split[1] || 0;\r\n ver3 = ver_split[2] || 0;\r\n }\r\n }\r\n\r\n //整数かどうか\r\n /*\r\n const isInteger = (x) => {\r\n return Math.round(x) === x;\r\n }\r\n //整数の場合は、桁数をそろえる\r\n const convertNumber = (x) => {\r\n const num = Number(x);\r\n if (isInteger(num)){\r\n return num.toFixed(1);\r\n }\r\n return num;\r\n }\r\n\r\n const abs = (x) => {\r\n const value = Math.round(x*10)/10;\r\n return value < 0 ? -value: value;\r\n }\r\n */\r\n\r\n const handleChangeInput = pos => event => {\r\n const val = Number(event.target.value).toFixed(0);\r\n if (val < 0 || 99 < val) return;\r\n let version = '';\r\n switch (pos) {\r\n case 0:\r\n version = `${val}.${ver2}.${ver3}`;\r\n break;\r\n case 1:\r\n version = `${ver1}.${val}.${ver3}`;\r\n break;\r\n case 2:\r\n version = `${ver1}.${ver2}.${val}`;\r\n break;\r\n default:\r\n return;\r\n }\r\n handleInputChange('version', version);\r\n }\r\n\r\n\r\n //カテゴリ選択用テーブルの列定義\r\n const categoryRows = [\r\n {id: 'category_short_name' , label: t('category_short_name') },\r\n {id: 'category_name' , label: t('category_name') },\r\n ]\r\n\r\n //機種選択用テーブルの列定義\r\n const modelRows = [\r\n {id: 'category_code' , label: t('category_code') },\r\n {id: 'model_code' , label: t('model_code') },\r\n ]\r\n\r\n const selectedModels = new_serials ? new_serials.map(serial => serial.model_id): []\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default withStyles(styles)(DocModelSelectionForm)\r\n","/*\n * フォーム:機番編集用コンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport {t} from 'i18next';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport Input from '@material-ui/core/Input';\nimport TextField from '@material-ui/core/TextField';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n minWidth: 500,\n tableLayout: \"auto\"\n },\n numberCell:{\n textAlign: \"right\",\n width: 80\n },\n});\n\n\nconst DocSerialForm = (props) => {\n const { classes } = props;\n const { rows } = props;\n const { handleSerialChanged, handlePastSerialChanged } = props;\n\n const onSerialChanged = (row, key) => (event) => {\n handleSerialChanged(row.model_id, key, event.target.value);\n /*\n if(row.manual_id) {\n handlePastSerialChanged(row.manual_id, row.model_id, key, event.target.value);\n }\n else {\n handleSerialChanged(row.model_id, key, event.target.value);\n }\n */\n }\n\n return (\n \n \n \n \n {t('models_name')}\n {t('file_type')}\n {t('start_serial')}\n {t('end_serial')}\n \n \n \n {rows.map((row, index) => (\n \n {row.model_name}\n {row.file_type}\n \n {\n row.is_start_editable ?\n \t\t\t\t\t\t\n : row.start_serial\n }\n \n \n {\n row.is_end_editable ?\n \t\t\t\t\t\t\n : row.end_serial\n }\n \n \n ))}\n \n
\n
\n )\n}\n\nexport default withStyles(styles)(DocSerialForm);\n","/*\r\n * フォーム:マニュアル詳細入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\n\r\nconst styles = (theme) => ({\r\n textField: {\r\n width: 200\r\n },\r\n multiTextField: {\r\n width: 300\r\n },\r\n});\r\n\r\nconst DocDetailForm = (props) => {\r\n const { classes } = props;\r\n const { handleInputChange, handleSelectedCountries } = props;\r\n const { doc, countries, selectedCountries, showMessage } = props;\r\n console.log(doc);\r\n\r\n const handleChangeInput = (name, maxLen=50) => event => {\r\n const rawInput = event.target.value;\r\n if(String(rawInput).length <= maxLen){\r\n handleInputChange(name, rawInput);\r\n }else{\r\n showMessage({\r\n type: 'warning',\r\n content: t('max_length_error', {maxLen:maxLen})\r\n });\r\n }\r\n }\r\n\r\n const handleChangePageNumber = name => event => {\r\n const rawInput = event.target.value;\r\n if(!rawInput){\r\n handleInputChange(name, null);\r\n return;\r\n }\r\n let num = Number(rawInput).toFixed(0);\r\n if (num < 0) {\r\n num = 0;\r\n } else if (num > 999999999) {\r\n num = 999999999;\r\n }\r\n handleInputChange(name, num);\r\n }\r\n\r\n const rows = [\r\n {id: 'country_code', label: t('country_code') },\r\n {id: 'country_name', label: t('country_name') },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('do_display')}\r\n {t('do_not_display')}\r\n ))\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDocDetailForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DocDetailForm);\r\n","\r\nimport React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport ConfirmDialog from '../../components/ConfirmDialog';\r\nimport DeleteButton from '../../components/DeleteButton';\r\nimport * as docModule from '../../modules/doc/docForm';\r\nimport * as confirmModule from '../../modules/confirm';\r\nimport {t} from 'i18next';\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n id: state.docForm.doc.id,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleConfirm: (data) => dispatch(confirmModule.showConfirm(data)),\r\n handleDelete: (id) => dispatch(docModule.deleteRequest(id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DeleteButton);\r\n","/*\r\n * フォーム:ステッパーフォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Divider from '@material-ui/core/Divider';\r\n\r\nimport DocFormContent from './DocFormContent';\r\nimport DocFileSelectionForm from './DocFileSelectionForm';\r\nimport DocModelSelectionForm from './DocModelSelectionForm';\r\n//import SerialEditForm from './SerialEditForm';\r\nimport DocSerialForm from './DocSerialForm';\r\nimport DocDetailForm from './DocDetailForm';\r\nimport BackButton from '../BackButton';\r\nimport DocDeleteButton from '../../containers/Doc/DocDeleteButton';\r\nimport * as FormType from '../../constants/formTypes';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: '90%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing.unit,\r\n },\r\n instructions: {\r\n marginTop: theme.spacing.unit,\r\n marginBottom: theme.spacing.unit,\r\n },\r\n});\r\n\r\nconst Container = (props) => (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n);\r\n\r\n\r\n//バージョンでソートする\r\nconst sortByVersion = (a, b) => {\r\n const aSplit = a.split('.');\r\n const a1 = Number(aSplit[0]) || 0;\r\n const a2 = Number(aSplit[1]) || 0;\r\n const a3 = Number(aSplit[2]) || 0;\r\n const bSplit = b.split('.')\r\n const b1 = Number(bSplit[0]) || 0;\r\n const b2 = Number(bSplit[1]) || 0;\r\n const b3 = Number(bSplit[2]) || 0;\r\n //大小比較\r\n if ((a1 * 100 + a2 * 10 + a3) < (b1 * 100 + b2 * 10 + b3)) {\r\n return 1\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nconst getStepContent = (stepIndex, props) => {\r\n const { countries } = props;\r\n switch (stepIndex) {\r\n case 0:\r\n return (\r\n \r\n );\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n const newData = props.new_serials.map(serial => {\r\n return {\r\n ...serial,\r\n file_type: props.doc.file_type,\r\n is_start_editable: true,\r\n is_end_editable: true,\r\n is_new: true,\r\n model_id: serial.model_id,\r\n model_name: props.models.find(x => x.id === serial.model_id).model_code,\r\n }\r\n });\r\n\r\n //const rows = props.serials.concat(newData).sort((a, b) => b.model_id - a.model_id );\r\n const rows = newData;\r\n\r\n return (\r\n \r\n )\r\n case 3:\r\n return (\r\n \r\n );\r\n default:\r\n return 'Uknown stepIndex';\r\n }\r\n}\r\n\r\nconst DocForm = (props) => {\r\n const { classes } = props;\r\n const { activeStep } = props;\r\n const { handleNext, handleBack, handleReset, handleBackTo } = props;\r\n const steps = [t('step1'), t('category_model_settings'), t('step3'), t('step4')];\r\n\r\n return (\r\n
\r\n \r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n {activeStep === steps.length ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {getStepContent(activeStep, props)}\r\n
\r\n \r\n {t('back')}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n props.doc.id && props.formType===FormType.EDIT ? \r\n \r\n : \"\"\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default withStyles(styles)(DocForm);\r\n","import {connect} from 'react-redux';\r\nimport DocForm from '../../components/Doc/DocForm';\r\n\r\nimport * as docForm from '../../modules/doc/docForm';\r\nimport * as messageModule from '../../modules/message';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n activeStep: state.docForm.activeStep,\r\n filename: state.docForm.doc.file_name,\r\n doc: state.docForm.doc,\r\n models: state.models.data || [],\r\n categories: state.categories.data || [],\r\n countries: state.countries.data || [],\r\n new_serials: state.docForm.new_serials || [],\r\n serials: state.docForm.serials || [],\r\n selectedCategories: state.docForm.categories || [],\r\n selectedCountries: state.docForm.countries || [],\r\n selectedModels: state.docForm.models || [],\r\n formType: state.docForm.formType,\r\n isWaiting: state.docForm.isLoading || state.docForm.isUploading || state.docForm.isDeleting\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n return {\r\n handleNext: () => dispatch(docForm.stepNextRequest()),\r\n handleBack: () => dispatch(docForm.stepBack()),\r\n handleReset: () => dispatch(docForm.stepReset()),\r\n handleBackTo: () => dispatch(docForm.backToList()),\r\n handleInputChange: (key, value) => dispatch(docForm.inputChanged({key: key, value: value})),\r\n handleFileSelected: (file) => dispatch(docForm.fileSelected(file)),\r\n handleSerialChanged: (modelId, key, value) =>\r\n dispatch(docForm.serialChanged({modelId: modelId, key: key, value: value})),\r\n handlePastSerialChanged: (docId, modelId, key, value) =>\r\n dispatch(docForm.pastSerialChanged({docForm: docId, modelId: modelId, key: key, value: value})),\r\n handleSelectedCategories: (ids) => dispatch(docForm.categoriesSelected(ids)),\r\n handleSelectedModels: (ids) => dispatch(docForm.modelsSelected(ids)),\r\n handleSelectedCountries: (ids) => dispatch(docForm.countriesSelected(ids)),\r\n handleOnFileSelected: (file) => dispatch(docForm.fileSelected(file)),\r\n handleOnChangeLogFileSelected: (file) => dispatch(docForm.changeLogFileSelected(file)),\r\n showMessage: (data) => dispatch(messageModule.showMessage(data)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DocForm);\r\n","import {connect} from 'react-redux';\n\nimport Login from '../../components/Login';\nimport * as authModule from '../../modules/engine/engineAuth';\n\nconst mapStateToProps = (state) => {\n return {\n username: state.engineAuth.form.username,\n passowrd: state.engineAuth.form.password,\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n handleLogin: () => dispatch(authModule.loginRequest()),\n handleAdminLogin: () => dispatch(authModule.adminLoginRequest()),\n handleInputChange: (key, value) =>\n dispatch(authModule.formChanged({key: key, value: value})),\n handleAutoAdminLogin: (cookie) => dispatch(authModule.autoAdminLoginRequest(cookie))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","/*\n * リスト:マニュアル一覧表示用コンポーネント\n */\nimport React from 'react';\nimport Moment from 'react-moment';\nimport moment from 'moment'\nimport 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport i18next,{t} from 'i18next';\n\nimport CreateIcon from '@material-ui/icons/Create';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nimport { Popup, Pagination } from 'semantic-ui-react';\n\nimport AdminOnly from '../../containers/AdminOnly';\nimport NumberSelect from '../NumberSelect';\nimport Tooltip from '@material-ui/core/Tooltip';\n\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n tableLayout: 'fixed',\n },\n tableFooter: {\n marginTop: theme.spacing.unit,\n },\n rowSelected: {\n background: \"#FFF9C4 !important\",\n },\n tableItem: {\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n }\n});\n\n\nclass EngineTable extends React.Component {\n state = {\n checkedRow: null\n }\n\n SelectRow = (id) => {\n this.setState({checkedRow: id});\n }; \n \n constructor (props) {{\n super(props);\n }}\n\n render() {\n const { classes } = this.props;\n const { resources, page, per_page, count, isSuperuser} = this.props;\n const { handlePageChanged, handlePerPageChanged, handleSortChanged } = this.props;\n const { handleOpenPDF, handleDownload, handleUpgrade, handleEdit } = this.props;\n const { sort } = this.props;\n const { lang } = this.props;\n\n //合計ページ数\n let totalPages = Math.floor(count / per_page);\n if(count % per_page !== 0) {\n totalPages++;\n }\n //権限によってヘッダー情報を変更する\n const getHeaders = () => {\n if (isSuperuser) {\n return adminHeaders;\n }\n else {\n return clientHeaders;\n }\n }\n\n //ページ変更イベント\n const handleChangePage = (event, page) => {\n handlePageChanged(page.activePage);\n };\n\n //表示件数変更イベント\n const handleChangeRowsPerPage = event => {\n handlePerPageChanged(event.target.value);\n };\n\n const onRequestSort = (event, property) => {\n handleSortChanged(property);\n }\n\n const createSortHandler = property => event => {\n onRequestSort(event, property);\n }\n\n\n //表示内容を項目に応じて切り分ける\n const createTableCell = (row, id) => {\n\n switch (id) {\n case 'serials':\n return (\n row.serials.map(item =>{\n return (\n
{item.model_code}: {item.start_serial} ~ {item.end_serial}
\n )}\n )\n )\n case 'engine_makers':\n return (\n row.engine_makers.map(item => lang == \"en\" ?\n item.engine_maker_name_en : item.engine_maker_name).join('/')\n )\n case 'version':\n const xSplit = String(row[id]).split('.');\n const x1 = xSplit[0] || '0';\n const x2 = xSplit[1] || '0';\n const x3 = xSplit[2] || '0';\n if(isSuperuser) {\n return `${x1}.${x2}.${x3}`;\n }else{\n return `${x1}.${x2}`;\n }\n return (Number(row[id]).toFixed(1))\n case 'display':\n const isDisplay = row[id];\n if (isDisplay){\n return (t('do_display'))\n }\n else {\n return (t('do_not_display'))\n }\n case 'updated_at':\n return (\n \n {moment(row[id])}\n \n )\n case 'actions':\n return (\n \n \n handleEdit(row.id)}\n >\n \n {t('edit')}\n \n {\n row.is_latest ?\n handleUpgrade(row.id)}\n >\n \n {t('upgrade')}\n \n : ''\n }\n \n \n handleOpenPDF(row.file_name)}\n >\n \n {t('download')}\n \n \n \n )\n default:\n return (row[id])\n }\n }\n\n let title='title_ja';\n if(i18next.language!=='ja'){\n title = 'title_en';\n }\n\n let overview = 'overview_ja';\n if(i18next.language!=='ja') {\n overview = 'overview_en';\n }\n\n //管理者用ヘッダー定義\n const adminHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"\", width: \"280px\"},\n {id: 'display', label: t('display'), width: \"150px\"},\n {id: 'engine_makers', label: t('engine_maker'), width: \"200px\"},\n {id: 'engine_models_name', label: t('engine_models_name'), width: \"200px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'version', label: t('version'), width: \"180px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n {id: 'updated_at', label: t('updated_at'), width: \"150px\"},\n ];\n\n //販売店用ヘッダー定義\n const clientHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"PDF\", width: \"200px\"},\n {id: 'engine_makers', label: t('engine_maker'), width: \"200px\"},\n {id: 'engine_models_name', label: t('engine_models_name'), width: \"200px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'version', label: t('version'), width: \"180px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n ];\n\n return (\n
\n \n \n \n \n {getHeaders().map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n \n {t('change_log')}\n \n \n \n \n \n \n {resources.map(row => {\n return (\n {\n this.SelectRow(row.id);\n }}>\n {\n getHeaders().map(item => (\n \n {createTableCell(row, item.id)}\n \n ))\n }\n \n \n {\n row.change_log_file_name ?\n handleOpenPDF(row.change_log_file_name)}\n >\n \n {t('download')}\n \n : ''\n }\n \n \n \n }\n />\n );\n })}\n \n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nEngineTable.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(EngineTable);\n","/*\n * リスト:一覧画面の検索フォームコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {t} from 'i18next';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Switch from '@material-ui/core/Switch';\n\nimport SearchIcon from '@material-ui/icons/Search';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport AdminOnly from '../../containers/AdminOnly';\n\nimport MultiSelect from '../MultiSelect';\nimport CountriesImportDialog from '../Shared/CountriesImportDialog';\n\nconst styles = theme => ({\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: 200,\n },\n searchButton: {\n float: 'right',\n margin: theme.spacing.unit * 1,\n },\n});\n\nconst SearchForm = props => {\n const { classes } = props;\n const { queries } = props;\n const { file_types } = props.queries;\n const { handleSubmit, handleInputChange, handleFileTypeChange, handleExportCsv } = props;\n const { categories, engineMakers } = props;\n const { uploadFileName, uploadFileSelected, handleUploadOK, handleUploadCancel} = props;\n\n const handleChangeInput = name => event => {\n handleInputChange(name, event.target.value);\n }\n\n const handleChangeMakers = name => ids => {\n handleInputChange(name, ids);\n }\n\n const handleChangeCategories = name => ids => {\n handleInputChange(name, ids);\n }\n\n const handleChangeSwitch = name => event => {\n handleInputChange(name, event.target.checked);\n };\n\n const handleChangeCheckbox = name => event => {\n handleFileTypeChange(name, event.target.checked);\n }\n\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n label={t(\"only_latest\")}\n />\n \n
\n
\n \n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nSearchForm.propTypes = {\n queries: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n handleInputChange: PropTypes.func.isRequired,\n handleFileTypeChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(SearchForm);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport CreateButton from '../../components/CreateButton';\nimport EngineTable from '../../components/Engine/EngineTable';\nimport EngineSearchForm from '../../components/Engine/EngineSearchForm';\nimport AdminOnly from '../AdminOnly';\n\nimport { searchRequest, exportCsvRequest, inputChanged, fileTypeChanged, resetQueries, sortChanged,\n downloadRequest, pageChanged, perPageChanged, menuSelected,\n setUploadFile, uploadCsvRequest, uploadCsvSuccess, uploadCsvFailed } from '../../modules/engine/engineList';\nimport { openNew, openUpgrade, openEdit, resetForm } from '../../modules/engine/engineForm';\nimport { autoLoginRequest, changeLanguage } from '../../modules/engine/engineAuth';\nimport * as categoryAction from '../../modules/categories';\nimport * as engineMakerAction from '../../modules/engineMakers';\nimport { openPDF } from '../../services/pdf.service';\n\n\nclass EngineList extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n\n if (!this.props.isLoggedIn) {\n //クエリパラメータから言語情報の取得(?lang=en/ja)\n const qparams = new URLSearchParams(this.props.location.search);\n const lang = qparams.get('lang'); \n this.props.setLanguage(lang);\n\n const {params} = this.props.match;\n if (params.type) {\n this.props.autoLogin(params.type);\n }\n }\n this.props.resetForm();\n this.props.fetchCategories();\n this.props.fetchEngineMakers();\n this.props.searchRequest(this.props.queries);\n }\n\n render () {\n const props = this.props;\n console.log(props)\n return (\n
\n {\n return {\n key : category.id,\n value : category.category_short_name\n }})}\n engineMakers={props.engineMakers.map(\n maker => {\n return {\n key: maker.id,\n value: props.lang==\"en\" ? \n maker.engine_maker_name_en : maker.engine_maker_name\n }})}\n uploadFileName={props.uploadFileName}\n uploadFileSelected={props.uploadFileSelected}\n handleUploadOK={props.handleUploadOK}\n handleUploadCancel={props.handleUploadCancel}\n />\n openPDF(filename)}\n handleDownload={props.handleDownload}\n handleUpgrade={props.handleUpgrade}\n handleEdit={props.handleEdit}\n handleSortChanged={props.handleSortChanged}\n />\n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = state => ({\n lang: state.auth.language,\n isLoggedIn: state.auth.isLoggedIn,\n isLoading: state.engineList.isLoading,\n queries: state.engineList.queries,\n resources: state.engineList.data.engines || [],\n count: state.engineList.data.count || 0,\n page: state.engineList.queries.page,\n per_page: state.engineList.queries.per_page,\n isSuperuser: state.auth.account.is_superuser,\n categories: state.categories.data || [],\n engineMakers: state.engineMakers.data || [],\n uploadFileName: state.engineList.upload_file ?state.engineList.upload_file.name: \"\",\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n searchRequest: (queries) => dispatch(searchRequest({...queries})),\n inputChanged: (key, value) => dispatch(inputChanged({key: key, value: value})),\n fileTypeChanged: (key, value) => dispatch(fileTypeChanged({key: key, value: value})),\n resetQueries: () => dispatch(resetQueries()),\n handlePageChanged: (page) => dispatch(pageChanged(page)),\n handlePerPageChanged: (per_page) => dispatch(perPageChanged(per_page)),\n handleSortChanged: (sort) => dispatch(sortChanged(sort)),\n handleDownload: (file_name) => dispatch(downloadRequest(file_name)),\n handleUpgrade: (id) => dispatch(openUpgrade(id)),\n handleEdit: (id) => dispatch(openEdit(id)),\n openNew: () => dispatch(openNew()),\n handleExportCsv: (queries) => dispatch(exportCsvRequest({...queries})),\n autoLogin: (type) => dispatch(autoLoginRequest(type)),\n resetForm: () => dispatch(resetForm()),\n fetchCategories: () => dispatch(categoryAction.fetchRequest()),\n fetchEngineMakers: () => dispatch(engineMakerAction.fetchRequest()),\n setLanguage: (lang) => dispatch(changeLanguage(lang)),\n handleUploadOK: () => dispatch(uploadCsvRequest()),\n handleUploadCancel: () => dispatch(setUploadFile(null)),\n uploadFileSelected: (file) => dispatch(setUploadFile(file))\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(EngineList);\n","/*\r\n * フォーム:フォーム入力内容表示用コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nconst styles = (theme) => ({\r\n listItemText:{\r\n fontSize:'0.7em',//Insert your required size\r\n },\r\n});\r\n\r\nconst getListItem = (title, content, classes) => {\r\n const display = content==null ? false: true;\r\n return (\r\n
\r\n {\r\n display ?\r\n \r\n \r\n \r\n : null \r\n }\r\n
\r\n )\r\n}\r\n\r\nconst FormContent = (props) =>{\r\n const {classes} = props;\r\n const {manual, categories, models, new_serials, step} = props;\r\n return (\r\n
\r\n {\r\n step!==0 ?\r\n \r\n \r\n \r\n {getListItem(t('file_name'), manual.file_name, classes)}\r\n \r\n \r\n \r\n : ''\r\n }\r\n
\r\n )\r\n};\r\n\r\nFormContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(FormContent);\r\n","/*\r\n * フォーム:ファイル選択フォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport * as fileTypes from '../../constants/fileTypes';\r\nimport FileDropzone from '../FileDropzone';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n width: 400\r\n },\r\n});\r\n\r\nconst FileSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { file_type, title_ja, title_en, filename } = props;\r\n const { onFileSelected } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nFileSelectionForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(FileSelectionForm);\r\n","/*\r\n * フォーム:機種・バージョン入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\n\r\nconst styles = theme => ({\r\n version: {\r\n marginTop: theme.spacing.unit * 3,\r\n },\r\n dotRoot: {\r\n position: \"relative\",\r\n width: theme.spacing.unit,\r\n\r\n },\r\n dot: {\r\n position: \"absolute\",\r\n bottom: theme.spacing.unit,\r\n }\r\n})\r\n\r\nconst ModelSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { engineMakers, engineModels, categories, models, manual, new_serials, selectedCategories, selectedEngineMakers, selectedEngineModels } = props;\r\n const { handleSelectedEngineMakers, handleSelectedEngineModels, handleSelectedCategories, handleSelectedModels, handleInputChange } = props;\r\n\r\n console.log(props);\r\n\r\n var ver1 = 0;\r\n var ver2 = 0;\r\n var ver3 = 0;\r\n\r\n if(manual && manual.version) {\r\n const ver_split = manual.version.split('.');\r\n if(ver_split.length >= 3) {\r\n ver1 = ver_split[0] || 0;\r\n ver2 = ver_split[1] || 0;\r\n ver3 = ver_split[2] || 0;\r\n }\r\n }\r\n\r\n //整数かどうか\r\n /*\r\n const isInteger = (x) => {\r\n return Math.round(x) === x;\r\n }\r\n //整数の場合は、桁数をそろえる\r\n const convertNumber = (x) => {\r\n const num = Number(x);\r\n if (isInteger(num)){\r\n return num.toFixed(1);\r\n }\r\n return num;\r\n }\r\n\r\n const abs = (x) => {\r\n const value = Math.round(x*10)/10;\r\n return value < 0 ? -value: value;\r\n }\r\n */\r\n\r\n const handleChangeInput = pos => event => {\r\n const val = Number(event.target.value).toFixed(0);\r\n if (val < 0 || 99 < val) return;\r\n let version = '';\r\n switch (pos) {\r\n case 0:\r\n version = `${val}.${ver2}.${ver3}`;\r\n break;\r\n case 1:\r\n version = `${ver1}.${val}.${ver3}`;\r\n break;\r\n case 2:\r\n version = `${ver1}.${ver2}.${val}`;\r\n break;\r\n default:\r\n return;\r\n }\r\n handleInputChange('version', version);\r\n }\r\n\r\n\r\n //カテゴリ選択用テーブルの列定義\r\n const categoryRows = [\r\n {id: 'category_short_name' , label: t('category_short_name') },\r\n {id: 'category_name' , label: t('category_name') },\r\n ]\r\n\r\n //機種選択用テーブルの列定義\r\n const modelRows = [\r\n {id: 'category_code' , label: t('category_code') },\r\n {id: 'model_code' , label: t('model_code') },\r\n ]\r\n\r\n //エンジンメーカー選択用テーブルの列定義\r\n const engineMakerRows = [\r\n {id: 'engine_maker_code' , label: t('engine_maker_code') },\r\n {id: 'engine_maker_name' , label: t('engine_maker_name') },\r\n ]\r\n\r\n //エンジン型式選択用テーブルの列定義\r\n const engineModelRows = [\r\n {id: 'engine_model_code' , label: t('engine_model_code') },\r\n //{id: 'engine_model_name' , label: t('engine_model_name') },\r\n ]\r\n\r\n const selectedModels = new_serials ? new_serials.map(serial => serial.model_id): []\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {t('version')}\r\n \r\n \r\n \r\n \r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default withStyles(styles)(ModelSelectionForm)\r\n","/*\r\n * フォーム:マニュアル詳細入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\nimport FileDropzone from '../FileDropzone';\r\nimport { Checkbox } from '@material-ui/core';\r\n\r\nconst styles = (theme) => ({\r\n container: {\r\n width: '100%'\r\n },\r\n textField: {\r\n width: 200\r\n },\r\n multiTextField: {\r\n width: 300\r\n },\r\n});\r\n\r\nconst DetailForm = (props) => {\r\n const { classes } = props;\r\n const { handleInputChange, handleSelectedCountries, handleOnChangeLogFileSelected } = props;\r\n const { manual, countries, selectedCountries, changeLogFileName, showMessage } = props;\r\n\r\n const handleChangeInput = (name, maxLen = 50) => event => {\r\n const rawInput = event.target.value;\r\n if (String(rawInput).length <= maxLen) {\r\n handleInputChange(name, rawInput);\r\n } else {\r\n showMessage({\r\n type: 'warning',\r\n content: t('max_length_error', { maxLen: maxLen })\r\n });\r\n }\r\n }\r\n\r\n const handleChangeCheckbox = name => event => {\r\n handleInputChange(name, event.target.checked);\r\n }\r\n\r\n const handleChangePageNumber = name => event => {\r\n const rawInput = event.target.value;\r\n if (!rawInput) {\r\n handleInputChange(name, null);\r\n return;\r\n }\r\n let num = Number(rawInput).toFixed(0);\r\n if (num < 0) {\r\n num = 0;\r\n } else if (num > 999999999) {\r\n num = 999999999;\r\n }\r\n handleInputChange(name, num);\r\n }\r\n\r\n const rows = [\r\n { id: 'country_code', label: t('country_code') },\r\n { id: 'country_name', label: t('country_name') },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('do_display')}\r\n {t('do_not_display')}\r\n ))\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDetailForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DetailForm);\r\n","\r\nimport {connect} from 'react-redux';\r\nimport DeleteButton from '../../components/DeleteButton';\r\nimport * as engineModule from '../../modules/engine/engineForm';\r\nimport * as confirmModule from '../../modules/confirm';\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n id: state.engineForm.engine.id,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleConfirm: (data) => dispatch(confirmModule.showConfirm(data)),\r\n handleDelete: (id) => dispatch(engineModule.deleteRequest(id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DeleteButton);\r\n","/*\r\n * フォーム:ステッパーフォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Divider from '@material-ui/core/Divider';\r\n\r\nimport EngineFormContent from './EngineFormContent';\r\nimport EngineFileSelectionForm from './EngineFileSelectionForm';\r\nimport EngineModelSelectionForm from './EngineModelSelectionForm';\r\n//import SerialEditForm from './SerialEditForm';\r\nimport SerialForm from '../SerialForm';\r\nimport EngineDetailForm from './EngineDetailForm';\r\nimport BackButton from '../BackButton';\r\nimport EngineDeleteButton from '../../containers/Engine/EngineDeleteButton';\r\nimport * as FormType from '../../constants/formTypes';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: '90%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing.unit,\r\n },\r\n instructions: {\r\n marginTop: theme.spacing.unit,\r\n marginBottom: theme.spacing.unit,\r\n },\r\n});\r\n\r\nconst Container = (props) => (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n);\r\n\r\n\r\n//バージョンでソートする\r\nconst sortByVersion = (a, b) => {\r\n const aSplit = a.split('.');\r\n const a1 = Number(aSplit[0]) || 0;\r\n const a2 = Number(aSplit[1]) || 0;\r\n const a3 = Number(aSplit[2]) || 0;\r\n const bSplit = b.split('.')\r\n const b1 = Number(bSplit[0]) || 0;\r\n const b2 = Number(bSplit[1]) || 0;\r\n const b3 = Number(bSplit[2]) || 0;\r\n //大小比較\r\n if ((a1 * 100 + a2 * 10 + a3) < (b1 * 100 + b2 * 10 + b3)) {\r\n return 1\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nconst getStepContent = (stepIndex, props) => {\r\n const { countries } = props;\r\n switch (stepIndex) {\r\n case 0:\r\n return (\r\n \r\n );\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n const newData = props.new_serials.map(serial => {\r\n return {\r\n ...serial,\r\n version: props.engine.version,\r\n file_type: props.engine.file_type,\r\n is_start_editable: true,\r\n is_end_editable: true,\r\n is_new: true,\r\n manual_id: null,\r\n model_id: serial.model_id,\r\n model_name: props.models.find(x => x.id === serial.model_id).model_code,\r\n }\r\n });\r\n\r\n const rows = props.serials.concat(newData).sort((a, b) => {\r\n return b.model_id - a.model_id || sortByVersion(a.version, b.version)\r\n });\r\n\r\n return (\r\n \r\n )\r\n case 3:\r\n return (\r\n \r\n );\r\n default:\r\n return 'Uknown stepIndex';\r\n }\r\n}\r\n\r\nconst ManualForm = (props) => {\r\n const { classes } = props;\r\n const { activeStep } = props;\r\n const { handleNext, handleBack, handleReset, handleBackTo } = props;\r\n const steps = [t('step1'), t('step2'), t('step3'), t('step4')];\r\n\r\n return (\r\n
\r\n \r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n {activeStep === steps.length ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {getStepContent(activeStep, props)}\r\n
\r\n \r\n {t('back')}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n props.engine.id && props.engine.is_latest && props.formType===FormType.EDIT ? \r\n \r\n : \"\"\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default withStyles(styles)(ManualForm);\r\n","import {connect} from 'react-redux';\r\n\r\nimport EngineForm from '../../components/Engine/EngineForm';\r\nimport * as engineForm from '../../modules/engine/engineForm';\r\nimport * as messageModule from '../../modules/message';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n activeStep: state.engineForm.activeStep,\r\n filename: state.engineForm.engine.file_name,\r\n engine: state.engineForm.engine,\r\n models: state.models.data || [],\r\n categories: state.categories.data || [],\r\n engineMakers: state.engineMakers.data || [],\r\n engineModels: state.engineModels.data || [],\r\n countries: state.countries.data || [],\r\n new_serials: state.engineForm.new_serials || [],\r\n serials: state.engineForm.serials || [],\r\n selectedEngineMakers: state.engineForm.engineMakers || [],\r\n selectedEngineModels: state.engineForm.engineModels || [],\r\n selectedCategories: state.engineForm.categories || [],\r\n selectedCountries: state.engineForm.countries || [],\r\n changeLogFileName: state.engineForm.engine.change_log_file_name,\r\n formType: state.engineForm.formType,\r\n isWaiting: state.engineForm.isLoading || state.engineForm.isUploading || state.engineForm.isDeleting\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n return {\r\n handleNext: () => dispatch(engineForm.stepNextRequest()),\r\n handleBack: () => dispatch(engineForm.stepBack()),\r\n handleReset: () => dispatch(engineForm.stepReset()),\r\n handleBackTo: () => dispatch(engineForm.backToList()),\r\n handleInputChange: (key, value) => dispatch(engineForm.inputChanged({key: key, value: value})),\r\n handleFileSelected: (file) => dispatch(engineForm.fileSelected(file)),\r\n handleSerialChanged: (modelId, key, value) =>\r\n dispatch(engineForm.serialChanged({modelId: modelId, key: key, value: value})),\r\n handlePastSerialChanged: (engineId, modelId, key, value) =>\r\n dispatch(engineForm.pastSerialChanged({engineId: engineId, modelId: modelId, key: key, value: value})),\r\n handleSelectedEngineMakers: (ids) => dispatch(engineForm.engineMakersSelected(ids)),\r\n handleSelectedEngineModels: (ids) => dispatch(engineForm.engineModelsSelected(ids)),\r\n handleSelectedCategories: (ids) => dispatch(engineForm.categoriesSelected(ids)),\r\n handleSelectedModels: (ids) => dispatch(engineForm.modelsSelected(ids)),\r\n handleSelectedCountries: (ids) => dispatch(engineForm.countriesSelected(ids)),\r\n handleOnFileSelected: (file) => dispatch(engineForm.fileSelected(file)),\r\n handleOnChangeLogFileSelected: (file) => dispatch(engineForm.changeLogFileSelected(file)),\r\n showMessage: (data) => dispatch(messageModule.showMessage(data)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(EngineForm);\r\n","import React from 'react';\r\n\r\nconst NotFound = (props) => (\r\n
\r\n

404 Not Found

\r\n
\r\n)\r\n\r\nexport default NotFound;\r\n","/*\r\n * 汎用:フッターコンポーネント\r\n */\r\n\r\n import React from 'react';\r\n import PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router';\r\nimport { withStyles } from '@material-ui/core';\r\n\r\n const styles = {\r\n footer: {\r\n width: \"100%\",\r\n backgroundColor: \"#3B5998\",\r\n color: \"#cccccc\",\r\n fontSize: \"small\",\r\n textAlign: \"right\",\r\n marginTop: \"auto\",\r\n },\r\n footerContent: {\r\n marginRight: \"10%\"\r\n }\r\n }\r\n\r\n\r\n const Footer = (props) => {\r\n const { classes } = props;\r\n return (\r\n
\r\n
\r\n Copyright © kyoeisha Co.,Ltd. All Rights Reserved.\r\n
\r\n
\r\n )\r\n }\r\n\r\n export default withRouter(withStyles(styles)(Footer));","import {connect} from 'react-redux';\n\nimport Login from '../../components/Login';\nimport * as authModule from '../../modules/maintenance/maintenanceAuth';\n\nconst mapStateToProps = (state) => {\n return {\n username: state.maintenanceAuth.form.username,\n passowrd: state.maintenanceAuth.form.password,\n }\n}\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n handleLogin: () => dispatch(authModule.loginRequest()),\n handleAdminLogin: () => dispatch(authModule.adminLoginRequest()),\n handleInputChange: (key, value) =>\n dispatch(authModule.formChanged({key: key, value: value})),\n handleAutoAdminLogin: (cookie) => dispatch(authModule.autoAdminLoginRequest(cookie))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","/*\n * リスト:マニュアル一覧表示用コンポーネント\n */\nimport React from 'react';\nimport Moment from 'react-moment';\nimport moment from 'moment'\nimport 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport i18next,{t} from 'i18next';\n\nimport CreateIcon from '@material-ui/icons/Create';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nimport { Popup, Pagination } from 'semantic-ui-react';\n\nimport AdminOnly from '../../containers/AdminOnly';\nimport NumberSelect from '../NumberSelect';\nimport Tooltip from '@material-ui/core/Tooltip';\n\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n tableLayout: 'fixed',\n },\n tableFooter: {\n marginTop: theme.spacing.unit,\n },\n rowSelected: {\n background: \"#FFF9C4 !important\",\n }\n});\n\n\nclass ManualTable extends React.Component {\n state = {\n checkedRow: null\n }\n\n SelectRow = (id) => {\n this.setState({checkedRow: id});\n }; \n \n constructor (props) {{\n super(props);\n }}\n\n render() {\n const { classes } = this.props;\n const { resources, page, per_page, count, isSuperuser} = this.props;\n const { handlePageChanged, handlePerPageChanged, handleSortChanged } = this.props;\n const { handleOpenPDF, handleDownload, handleUpgrade, handleEdit } = this.props;\n const { sort } = this.props;\n\n //合計ページ数\n let totalPages = Math.floor(count / per_page);\n if(count % per_page !== 0) {\n totalPages++;\n }\n //権限によってヘッダー情報を変更する\n const getHeaders = () => {\n if (isSuperuser) {\n return adminHeaders;\n }\n else {\n return clientHeaders;\n }\n }\n\n //ページ変更イベント\n const handleChangePage = (event, page) => {\n handlePageChanged(page.activePage);\n };\n\n //表示件数変更イベント\n const handleChangeRowsPerPage = event => {\n handlePerPageChanged(event.target.value);\n };\n\n const onRequestSort = (event, property) => {\n handleSortChanged(property);\n }\n\n const createSortHandler = property => event => {\n onRequestSort(event, property);\n }\n\n\n //表示内容を項目に応じて切り分ける\n const createTableCell = (row, id) => {\n\n switch (id) {\n case 'serials':\n return (\n row.serials.map(item =>{\n return (\n
{item.model_code}: {item.start_serial} ~ {item.end_serial}
\n )}\n )\n )\n case 'version':\n const xSplit = String(row[id]).split('.');\n const x1 = xSplit[0] || '0';\n const x2 = xSplit[1] || '0';\n const x3 = xSplit[2] || '0';\n if(isSuperuser) {\n return `${x1}.${x2}.${x3}`;\n }else{\n return `${x1}.${x2}`;\n }\n return (Number(row[id]).toFixed(1))\n case 'display':\n const isDisplay = row[id];\n if (isDisplay){\n return (t('do_display'))\n }\n else {\n return (t('do_not_display'))\n }\n case 'updated_at':\n return (\n \n {moment(row[id])}\n \n )\n case 'actions':\n return (\n \n \n handleEdit(row.id)}\n >\n \n {t('edit')}\n \n {\n row.is_latest ?\n handleUpgrade(row.id)}\n >\n \n {t('upgrade')}\n \n : ''\n }\n \n \n handleOpenPDF(row.file_name)}\n >\n \n {t('download')}\n \n \n \n )\n default:\n return (row[id])\n }\n }\n\n let title='title_ja';\n if(i18next.language!=='ja'){\n title = 'title_en';\n }\n\n let overview = 'overview_ja';\n if(i18next.language!=='ja') {\n overview = 'overview_en';\n }\n\n //管理者用ヘッダー定義\n const adminHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"\", width: \"280px\"},\n {id: 'display', label: t('display'), width: \"150px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'version', label: t('version'), width: \"180px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'destination', label: t('destination'), width: \"140px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n {id: 'updated_at', label: t('updated_at'), width: \"150px\"},\n ];\n\n //販売店用ヘッダー定義\n const clientHeaders = [\n {id: 'file_name', label: t('file_name'), width: \"280px\"},\n {id: 'actions', label: \"PDF\", width: \"200px\"},\n {id: 'models_name', label: t('models_name'), width: \"200px\"},\n {id: 'version', label: t('version'), width: \"180px\"},\n {id: 'serials', label: t('serials'), width: \"250px\"},\n {id: 'destination', label: t('destination'), width: \"140px\"},\n {id: 'language', label: t('language'), width: \"140px\"},\n {id: overview , label: t('overview'), width: \"230px\"},\n ];\n\n return (\n
\n \n \n \n \n {getHeaders().map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n \n {t('change_log')}\n \n \n \n \n \n \n {resources.map(row => {\n return (\n {\n this.SelectRow(row.id);\n }}>\n {\n getHeaders().map(item => (\n \n {createTableCell(row, item.id)}\n \n ))\n }\n \n \n {\n row.change_log_file_name ?\n handleOpenPDF(row.change_log_file_name)}\n >\n \n {t('download')}\n \n : ''\n }\n \n \n \n }\n />\n );\n })}\n \n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nManualTable.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(ManualTable);\n","/*\n * リスト:一覧画面の検索フォームコンポーネント\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {t} from 'i18next';\nimport { withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Switch from '@material-ui/core/Switch';\n\nimport SearchIcon from '@material-ui/icons/Search';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport AdminOnly from '../../containers/AdminOnly';\n\nimport MultiSelect from '../MultiSelect';\nimport CountriesImportDialog from '../Shared/CountriesImportDialog';\n\nconst styles = theme => ({\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: 200,\n },\n searchButton: {\n float: 'right',\n margin: theme.spacing.unit * 1,\n },\n});\n\nconst SearchForm = props => {\n const { classes } = props;\n const { queries } = props;\n const { handleSubmit, handleInputChange, handleFileTypeChange, handleExportCsv } = props;\n const { categories } = props;\n const { uploadFileName, uploadFileSelected, handleUploadOK, handleUploadCancel} = props;\n\n const handleChangeInput = name => event => {\n handleInputChange(name, event.target.value);\n }\n\n const handleChangeCategories = name => ids => {\n handleInputChange(name, ids);\n }\n\n const handleChangeSwitch = name => event => {\n handleInputChange(name, event.target.checked);\n };\n\n const handleChangeCheckbox = name => event => {\n handleFileTypeChange(name, event.target.checked);\n }\n\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n }\n label={t(\"only_latest\")}\n />\n \n
\n
\n \n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nSearchForm.propTypes = {\n queries: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n handleInputChange: PropTypes.func.isRequired,\n handleFileTypeChange: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(SearchForm);\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport CreateButton from '../../components/CreateButton';\nimport MaintenanceTable from '../../components/Maintenance/MaintenanceTable';\nimport MaintenanceSearchForm from '../../components/Maintenance/MaintenanceSearchForm';\nimport AdminOnly from '../AdminOnly';\n\nimport { searchRequest, exportCsvRequest, inputChanged, fileTypeChanged, resetQueries, sortChanged,\n downloadRequest, pageChanged, perPageChanged, menuSelected,\n setUploadFile, uploadCsvRequest, uploadCsvSuccess, uploadCsvFailed } from '../../modules/maintenance/maintenanceList';\nimport { openNew, openUpgrade, openEdit, resetForm } from '../../modules/maintenance/maintenanceForm';\nimport { autoLoginRequest, changeLanguage } from '../../modules/maintenance/maintenanceAuth';\nimport * as categoryAction from '../../modules/categories';\nimport { openPDF } from '../../services/pdf.service';\n\n\nclass MaintenanceList extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n\n if (!this.props.isLoggedIn) {\n //クエリパラメータから言語情報の取得(?lang=en/ja)\n const qparams = new URLSearchParams(this.props.location.search);\n const lang = qparams.get('lang'); \n this.props.setLanguage(lang);\n\n const {params} = this.props.match;\n if (params.type) {\n this.props.autoLogin(params.type);\n }\n }\n this.props.resetForm();\n this.props.fetchCategories();\n this.props.searchRequest(this.props.queries);\n }\n\n render () {\n const props = this.props;\n return (\n
\n {\n return {\n key : category.id,\n value : category.category_short_name\n }})}\n uploadFileName={props.uploadFileName}\n uploadFileSelected={props.uploadFileSelected}\n handleUploadOK={props.handleUploadOK}\n handleUploadCancel={props.handleUploadCancel}\n />\n openPDF(filename)}\n handleDownload={props.handleDownload}\n handleUpgrade={props.handleUpgrade}\n handleEdit={props.handleEdit}\n handleSortChanged={props.handleSortChanged}\n />\n \n \n \n
\n )\n }\n}\n\nconst mapStateToProps = state => ({\n isLoggedIn: state.auth.isLoggedIn,\n isLoading: state.maintenanceList.isLoading,\n queries: state.maintenanceList.queries,\n resources: state.maintenanceList.data.maintenances || [],\n count: state.maintenanceList.data.count || 0,\n page: state.maintenanceList.queries.page,\n per_page: state.maintenanceList.queries.per_page,\n isSuperuser: state.auth.account.is_superuser,\n categories: state.categories.data || [],\n uploadFileName: state.maintenanceList.upload_file ?state.maintenanceList.upload_file.name: \"\",\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n searchRequest: (queries) => dispatch(searchRequest({...queries})),\n inputChanged: (key, value) => dispatch(inputChanged({key: key, value: value})),\n fileTypeChanged: (key, value) => dispatch(fileTypeChanged({key: key, value: value})),\n resetQueries: () => dispatch(resetQueries()),\n handlePageChanged: (page) => dispatch(pageChanged(page)),\n handlePerPageChanged: (per_page) => dispatch(perPageChanged(per_page)),\n handleSortChanged: (sort) => dispatch(sortChanged(sort)),\n handleDownload: (file_name) => dispatch(downloadRequest(file_name)),\n handleUpgrade: (id) => dispatch(openUpgrade(id)),\n handleEdit: (id) => dispatch(openEdit(id)),\n openNew: () => dispatch(openNew()),\n handleExportCsv: (queries) => dispatch(exportCsvRequest({...queries})),\n autoLogin: (type) => dispatch(autoLoginRequest(type)),\n resetForm: () => dispatch(resetForm()),\n fetchCategories: () => dispatch(categoryAction.fetchRequest()),\n setLanguage: (lang) => dispatch(changeLanguage(lang)),\n handleUploadOK: () => dispatch(uploadCsvRequest()),\n handleUploadCancel: () => dispatch(setUploadFile(null)),\n uploadFileSelected: (file) => dispatch(setUploadFile(file))\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(MaintenanceList);\n","/*\r\n * フォーム:フォーム入力内容表示用コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\n\r\nconst styles = (theme) => ({\r\n listItemText:{\r\n fontSize:'0.7em',//Insert your required size\r\n },\r\n});\r\n\r\nconst getListItem = (title, content, classes) => {\r\n const display = content==null ? false: true;\r\n return (\r\n
\r\n {\r\n display ?\r\n \r\n \r\n \r\n : null \r\n }\r\n
\r\n )\r\n}\r\n\r\nconst FormContent = (props) =>{\r\n const {classes} = props;\r\n const {manual, categories, models, new_serials, step} = props;\r\n return (\r\n
\r\n {\r\n step!==0 ?\r\n \r\n \r\n \r\n {getListItem(t('file_name'), manual.file_name, classes)}\r\n \r\n \r\n \r\n : ''\r\n }\r\n
\r\n )\r\n};\r\n\r\nFormContent.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(FormContent);\r\n","/*\r\n * フォーム:ファイル選択フォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {t} from 'i18next';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport * as fileTypes from '../../constants/fileTypes';\r\nimport FileDropzone from '../FileDropzone';\r\n\r\nconst styles = theme => ({\r\n title: {\r\n width: 400\r\n },\r\n});\r\n\r\nconst FileSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { file_type, title_ja, title_en, filename } = props;\r\n const { onFileSelected } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nFileSelectionForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(FileSelectionForm);\r\n","/*\r\n * フォーム:機種・バージョン入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\n\r\nconst styles = theme => ({\r\n version: {\r\n marginTop: theme.spacing.unit * 3,\r\n },\r\n dotRoot: {\r\n position: \"relative\",\r\n width: theme.spacing.unit,\r\n\r\n },\r\n dot: {\r\n position: \"absolute\",\r\n bottom: theme.spacing.unit,\r\n }\r\n})\r\n\r\nconst ModelSelectionForm = (props) => {\r\n const { classes } = props;\r\n const { categories, models, manual, new_serials, selectedCategories } = props;\r\n const { handleSelectedCategories, handleSelectedModels, handleInputChange } = props;\r\n\r\n var ver1 = 0;\r\n var ver2 = 0;\r\n var ver3 = 0;\r\n\r\n if(manual && manual.version) {\r\n const ver_split = manual.version.split('.');\r\n if(ver_split.length >= 3) {\r\n ver1 = ver_split[0] || 0;\r\n ver2 = ver_split[1] || 0;\r\n ver3 = ver_split[2] || 0;\r\n }\r\n }\r\n\r\n //整数かどうか\r\n /*\r\n const isInteger = (x) => {\r\n return Math.round(x) === x;\r\n }\r\n //整数の場合は、桁数をそろえる\r\n const convertNumber = (x) => {\r\n const num = Number(x);\r\n if (isInteger(num)){\r\n return num.toFixed(1);\r\n }\r\n return num;\r\n }\r\n\r\n const abs = (x) => {\r\n const value = Math.round(x*10)/10;\r\n return value < 0 ? -value: value;\r\n }\r\n */\r\n\r\n const handleChangeInput = pos => event => {\r\n const val = Number(event.target.value).toFixed(0);\r\n if (val < 0 || 99 < val) return;\r\n let version = '';\r\n switch (pos) {\r\n case 0:\r\n version = `${val}.${ver2}.${ver3}`;\r\n break;\r\n case 1:\r\n version = `${ver1}.${val}.${ver3}`;\r\n break;\r\n case 2:\r\n version = `${ver1}.${ver2}.${val}`;\r\n break;\r\n default:\r\n return;\r\n }\r\n handleInputChange('version', version);\r\n }\r\n\r\n\r\n //カテゴリ選択用テーブルの列定義\r\n const categoryRows = [\r\n {id: 'category_short_name' , label: t('category_short_name') },\r\n {id: 'category_name' , label: t('category_name') },\r\n ]\r\n\r\n //機種選択用テーブルの列定義\r\n const modelRows = [\r\n {id: 'category_code' , label: t('category_code') },\r\n {id: 'model_code' , label: t('model_code') },\r\n ]\r\n\r\n const selectedModels = new_serials ? new_serials.map(serial => serial.model_id): []\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {t('version')}\r\n \r\n \r\n \r\n \r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default withStyles(styles)(ModelSelectionForm)\r\n","/*\r\n * フォーム:マニュアル詳細入力コンポーネント\r\n */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nimport SelectableTable from '../SelectableTable';\r\nimport FileDropzone from '../FileDropzone';\r\nimport { Checkbox } from '@material-ui/core';\r\n\r\nconst styles = (theme) => ({\r\n container: {\r\n width: '100%'\r\n },\r\n textField: {\r\n width: 200\r\n },\r\n multiTextField: {\r\n width: 300\r\n },\r\n});\r\n\r\nconst DetailForm = (props) => {\r\n const { classes } = props;\r\n const { handleInputChange, handleSelectedCountries, handleOnChangeLogFileSelected } = props;\r\n const { manual, countries, selectedCountries, changeLogFileName, showMessage } = props;\r\n\r\n const handleChangeInput = (name, maxLen = 50) => event => {\r\n const rawInput = event.target.value;\r\n if (String(rawInput).length <= maxLen) {\r\n handleInputChange(name, rawInput);\r\n } else {\r\n showMessage({\r\n type: 'warning',\r\n content: t('max_length_error', { maxLen: maxLen })\r\n });\r\n }\r\n }\r\n\r\n const handleChangeCheckbox = name => event => {\r\n handleInputChange(name, event.target.checked);\r\n }\r\n\r\n const handleChangePageNumber = name => event => {\r\n const rawInput = event.target.value;\r\n if (!rawInput) {\r\n handleInputChange(name, null);\r\n return;\r\n }\r\n let num = Number(rawInput).toFixed(0);\r\n if (num < 0) {\r\n num = 0;\r\n } else if (num > 999999999) {\r\n num = 999999999;\r\n }\r\n handleInputChange(name, num);\r\n }\r\n\r\n const rows = [\r\n { id: 'country_code', label: t('country_code') },\r\n { id: 'country_name', label: t('country_name') },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('do_display')}\r\n {t('do_not_display')}\r\n ))\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDetailForm.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default withStyles(styles)(DetailForm);\r\n","\r\nimport {connect} from 'react-redux';\r\nimport DeleteButton from '../../components/DeleteButton';\r\nimport * as maintenanceModule from '../../modules/maintenance/maintenanceForm';\r\nimport * as confirmModule from '../../modules/confirm';\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n id: state.maintenanceForm.maintenance.id,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n handleConfirm: (data) => dispatch(confirmModule.showConfirm(data)),\r\n handleDelete: (id) => dispatch(maintenanceModule.deleteRequest(id))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DeleteButton);\r\n","/*\r\n * フォーム:ステッパーフォームコンポーネント\r\n */\r\nimport React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { t } from 'i18next';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Divider from '@material-ui/core/Divider';\r\n\r\nimport MaintenanceFormContent from './MaintenanceFormContent';\r\nimport MaintenanceFileSelectionForm from './MaintenanceFileSelectionForm';\r\nimport MaintenanceModelSelectionForm from './MaintenanceModelSelectionForm';\r\n//import SerialEditForm from './SerialEditForm';\r\nimport SerialForm from '../SerialForm';\r\nimport MaintenanceDetailForm from './MaintenanceDetailForm';\r\nimport BackButton from '../BackButton';\r\nimport MaintenanceDeleteButton from '../../containers/Maintenance/MaintenanceDeleteButton';\r\nimport * as FormType from '../../constants/formTypes';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: '90%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing.unit,\r\n },\r\n instructions: {\r\n marginTop: theme.spacing.unit,\r\n marginBottom: theme.spacing.unit,\r\n },\r\n});\r\n\r\nconst Container = (props) => (\r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n);\r\n\r\n\r\n//バージョンでソートする\r\nconst sortByVersion = (a, b) => {\r\n const aSplit = a.split('.');\r\n const a1 = Number(aSplit[0]) || 0;\r\n const a2 = Number(aSplit[1]) || 0;\r\n const a3 = Number(aSplit[2]) || 0;\r\n const bSplit = b.split('.')\r\n const b1 = Number(bSplit[0]) || 0;\r\n const b2 = Number(bSplit[1]) || 0;\r\n const b3 = Number(bSplit[2]) || 0;\r\n //大小比較\r\n if ((a1 * 100 + a2 * 10 + a3) < (b1 * 100 + b2 * 10 + b3)) {\r\n return 1\r\n }\r\n return -1;\r\n}\r\n\r\n\r\nconst getStepContent = (stepIndex, props) => {\r\n const { countries } = props;\r\n switch (stepIndex) {\r\n case 0:\r\n return (\r\n \r\n );\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n const newData = props.new_serials.map(serial => {\r\n return {\r\n ...serial,\r\n version: props.maintenance.version,\r\n file_type: props.maintenance.file_type,\r\n is_start_editable: true,\r\n is_end_editable: true,\r\n is_new: true,\r\n manual_id: null,\r\n model_id: serial.model_id,\r\n model_name: props.models.find(x => x.id === serial.model_id).model_code,\r\n }\r\n });\r\n\r\n const rows = props.serials.concat(newData).sort((a, b) => {\r\n return b.model_id - a.model_id || sortByVersion(a.version, b.version)\r\n });\r\n\r\n return (\r\n \r\n )\r\n case 3:\r\n return (\r\n \r\n );\r\n default:\r\n return 'Uknown stepIndex';\r\n }\r\n}\r\n\r\nconst ManualForm = (props) => {\r\n const { classes } = props;\r\n const { activeStep } = props;\r\n const { handleNext, handleBack, handleReset, handleBackTo } = props;\r\n const steps = [t('step1'), t('step2'), t('step3'), t('step4')];\r\n\r\n return (\r\n
\r\n \r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
\r\n {activeStep === steps.length ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n {getStepContent(activeStep, props)}\r\n
\r\n \r\n {t('back')}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {\r\n props.maintenance && props.maintenance.id && props.maintenance.is_latest && props.formType===FormType.EDIT ? \r\n \r\n : \"\"\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default withStyles(styles)(ManualForm);\r\n","import {connect} from 'react-redux';\r\n\r\nimport MaintenanceForm from '../../components/Maintenance/MaintenanceForm';\r\nimport * as maintenanceForm from '../../modules/maintenance/maintenanceForm';\r\nimport * as messageModule from '../../modules/message';\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n activeStep: state.maintenanceForm.activeStep,\r\n filename: state.maintenanceForm.maintenance.file_name,\r\n maintenance: state.maintenanceForm.maintenance,\r\n models: state.models.data || [],\r\n categories: state.categories.data || [],\r\n countries: state.countries.data || [],\r\n new_serials: state.maintenanceForm.new_serials || [],\r\n serials: state.maintenanceForm.serials || [],\r\n selectedCategories: state.maintenanceForm.categories || [],\r\n selectedCountries: state.maintenanceForm.countries || [],\r\n changeLogFileName: state.maintenanceForm.maintenance.change_log_file_name,\r\n formType: state.maintenanceForm.formType,\r\n isWaiting: state.maintenanceForm.isLoading || state.maintenanceForm.isUploading || state.maintenanceForm.isDeleting\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => {\r\n return {\r\n handleNext: () => dispatch(maintenanceForm.stepNextRequest()),\r\n handleBack: () => dispatch(maintenanceForm.stepBack()),\r\n handleReset: () => dispatch(maintenanceForm.stepReset()),\r\n handleBackTo: () => dispatch(maintenanceForm.backToList()),\r\n handleInputChange: (key, value) => dispatch(maintenanceForm.inputChanged({key: key, value: value})),\r\n handleFileSelected: (file) => dispatch(maintenanceForm.fileSelected(file)),\r\n handleSerialChanged: (modelId, key, value) =>\r\n dispatch(maintenanceForm.serialChanged({modelId: modelId, key: key, value: value})),\r\n handlePastSerialChanged: (maintenanceId, modelId, key, value) =>\r\n dispatch(maintenanceForm.pastSerialChanged({maintenanceId: maintenanceId, modelId: modelId, key: key, value: value})),\r\n handleSelectedCategories: (ids) => dispatch(maintenanceForm.categoriesSelected(ids)),\r\n handleSelectedModels: (ids) => dispatch(maintenanceForm.modelsSelected(ids)),\r\n handleSelectedCountries: (ids) => dispatch(maintenanceForm.countriesSelected(ids)),\r\n handleOnFileSelected: (file) => dispatch(maintenanceForm.fileSelected(file)),\r\n handleOnChangeLogFileSelected: (file) => dispatch(maintenanceForm.changeLogFileSelected(file)),\r\n showMessage: (data) => dispatch(messageModule.showMessage(data)),\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MaintenanceForm);\r\n","import React from 'react';\r\nimport { Router, Route, Switch } from 'react-router-dom';\r\nimport { history } from './store';\r\n\r\n//Common Components\r\nimport MainContainer from './components/MainContainer';\r\n\r\n//PageComponents\r\nimport Message from './containers/Message';\r\nimport ConfirmDialog from './containers/ConfirmDialog';\r\nimport PrivateRoute from './containers/PrivateRoute';\r\nimport Header from './containers/Header';\r\nimport Loading from './containers/Loading';\r\nimport Login from './containers/Login';\r\nimport Menu from './containers/Menu';\r\nimport ManualList from './containers/ManualList';\r\nimport ManualForm from './containers/ManualForm';\r\nimport CatalogLogin from './containers/Catalog/CatalogLogin';\r\nimport CatalogList from './containers/Catalog/CatalogList';\r\nimport CatalogForm from './containers/Catalog/CatalogForm';\r\nimport DocLogin from './containers/Doc/DocLogin';\r\nimport DocList from './containers/Doc/DocList';\r\nimport DocForm from './containers/Doc/DocForm';\r\nimport EngineLogin from './containers/Engine/EngineLogin';\r\nimport EngineList from './containers/Engine/EngineList';\r\nimport EngineForm from './containers/Engine/EngineForm';\r\nimport NotFound from './components/NotFound';\r\nimport Footer from './components/Footer';\r\nimport MaintenanceLogin from './containers/Maintenance/MaintenanceLogin';\r\nimport MaintenanceList from './containers/Maintenance/MaintenanceList';\r\nimport MaintenanceForm from './containers/Maintenance/MaintenanceForm';\r\n\r\nconst Routes = (props) => (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n } />\r\n } />\r\n \r\n } />\r\n } />\r\n \r\n } />\r\n } />\r\n \r\n } />\r\n } />\r\n \r\n } />\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default Routes;\r\n","import React from 'react';\nimport i18n from './locales/i18n';\nimport { I18nextProvider, translate } from \"react-i18next\";\n\nimport Routes from './Routes';\n\nconst Main = translate()(props => (\n
\n \n
\n));\n\nconst App = () => (\n \n
\n \n);\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'babel-polyfill';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport App from './App';\nimport configureStore from './store'\nimport 'semantic-ui-css/semantic.min.css';\nimport './index.css';\n\nimport * as serviceWorker from './serviceWorker';\n\nconst store = configureStore();\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n );\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/baroness_logo.7e87dd5e.png\";"],"sourceRoot":""}