Browse Source

[Fix-8836][UI Next][V1.0.0-Alpha] Rectify this issue about creating a file or directory with a wrong path. (#8892)

* fix this issue

* fix this issue

* fix code style

* fix code style
3.0.0/version-upgrade
calvin 2 years ago committed by GitHub
parent
commit
c7e80e42d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ResourcesController.java
  2. 7
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java
  3. 18
      dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ResourcesServiceImpl.java
  4. 2
      dolphinscheduler-ui-next/src/layouts/content/components/timezone/index.module.scss
  5. 7
      dolphinscheduler-ui-next/src/service/modules/resources/index.ts
  6. 3
      dolphinscheduler-ui-next/src/service/modules/resources/types.ts
  7. 19
      dolphinscheduler-ui-next/src/views/resource/file/index.tsx

22
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ResourcesController.java

@ -748,4 +748,26 @@ public class ResourcesController extends BaseController {
Map<String, Object> result = resourceService.authorizedUDFFunction(loginUser, userId); Map<String, Object> result = resourceService.authorizedUDFFunction(loginUser, userId);
return returnDataList(result); return returnDataList(result);
} }
/**
* query resource by resource id
*
* @param loginUser login user
* @param id resource id
* @return resource
*/
@ApiOperation(value = "queryResourceById", notes = "QUERY_BY_RESOURCE_NAME")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "RESOURCE_ID", required = true, dataType = "Int", example = "10")
})
@GetMapping(value = "/{id}/query")
@ResponseStatus(HttpStatus.OK)
@ApiException(RESOURCE_NOT_EXIST)
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
public Result queryResourceById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
@PathVariable(value = "id", required = true) Integer id
) {
return resourceService.queryResourceById(id);
}
} }

7
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ResourcesService.java

@ -231,4 +231,11 @@ public interface ResourcesService {
*/ */
Map<String, Object> authorizedFile(User loginUser, Integer userId); Map<String, Object> authorizedFile(User loginUser, Integer userId);
/**
* get resource by id
* @param resourceId resource id
* @return resource
*/
Result<Object> queryResourceById(Integer resourceId);
} }

18
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ResourcesServiceImpl.java

@ -815,6 +815,24 @@ public class ResourcesServiceImpl extends BaseServiceImpl implements ResourcesSe
return result; return result;
} }
/**
* get resource by id
* @param id resource id
* @return resource
*/
@Override
public Result<Object> queryResourceById(Integer id) {
Result<Object> result = new Result<>();
Resource resource = resourcesMapper.selectById(id);
if (resource == null) {
putMsg(result, Status.RESOURCE_NOT_EXIST);
return result;
}
putMsg(result, Status.SUCCESS);
result.setData(resource);
return result;
}
/** /**
* view resource file online * view resource file online
* *

2
dolphinscheduler-ui-next/src/layouts/content/components/timezone/index.module.scss

@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
.icon { .icon {
margin: 0 12px; margin: 0 12px;
} }

7
dolphinscheduler-ui-next/src/service/modules/resources/index.ts

@ -55,6 +55,13 @@ export function queryResourceById(
}) })
} }
export function queryCurrentResourceById(id: number): any {
return axios({
url: `/resources/${id}/query`,
method: 'get'
})
}
export function createResource( export function createResource(
data: CreateReq & FileNameReq & NameReq & ResourceTypeReq data: CreateReq & FileNameReq & NameReq & ResourceTypeReq
): any { ): any {

3
dolphinscheduler-ui-next/src/service/modules/resources/types.ts

@ -137,5 +137,6 @@ export {
ResourceIdReq, ResourceIdReq,
UdfFuncReq, UdfFuncReq,
ResourceListRes, ResourceListRes,
ResourceViewRes ResourceViewRes,
ResourceFile
} }

19
dolphinscheduler-ui-next/src/views/resource/file/index.tsx

@ -45,6 +45,9 @@ import ResourceRenameModal from './rename'
import { IRenameFile } from './types' import { IRenameFile } from './types'
import type { Router } from 'vue-router' import type { Router } from 'vue-router'
import styles from './index.module.scss' import styles from './index.module.scss'
import { useFileStore } from '@/store/file/file'
import { queryCurrentResourceById } from '@/service/modules/resources'
import { ResourceFile } from '@/service/modules/resources/types'
export default defineComponent({ export default defineComponent({
name: 'File', name: 'File',
@ -142,6 +145,7 @@ export default defineComponent({
serachRef.value serachRef.value
) )
} }
const fileStore = useFileStore()
onMounted(() => { onMounted(() => {
resourceListRef.value = getResourceListState(fileId.value) resourceListRef.value = getResourceListState(fileId.value)
@ -150,7 +154,20 @@ export default defineComponent({
watch( watch(
() => router.currentRoute.value.params.id, () => router.currentRoute.value.params.id,
// @ts-ignore // @ts-ignore
() => reload() () => {
reload()
const currFileId = Number(router.currentRoute.value.params.id) || -1
if (currFileId === -1) {
fileStore.setCurrentDir('/')
} else {
queryCurrentResourceById(currFileId).then((res: ResourceFile) => {
if (res.fullName) {
fileStore.setCurrentDir(res.fullName)
}
})
}
}
) )
return { return {

Loading…
Cancel
Save