Best JavaScript code snippet using cypress
IssueManageApi.js
Source:IssueManageApi.js
...20 const issue = {21 ...issueObj,22 };23 const versionId = issue.versionIssueRelDTOList[0].versionId;24 return request.post(`/test/v1/projects/${getProjectId()}/issueFolderRel/testAndRelationship?versionId=${versionId}${folderId ? `&folderId=${folderId}` : ''}&applyType=test`, issue);25}26/**27 *å建è¯è®º28 *29 * @export30 * @param {*} commitObj31 * @returns32 */33export function createCommit(commitObj) {34 return request.post(`/agile/v1/projects/${getProjectId()}/issue_comment`, commitObj);35}36/**37 *æ´æ°è¯è®º38 *39 * @export40 * @param {*} commitObj41 * @returns42 */43export function updateCommit(commitObj) {44 return request.post(`/agile/v1/projects/${getProjectId()}/issue_comment/update`, commitObj);45}46/**47 *å é¤è¯è®º48 *49 * @export50 * @param {*} commitId51 * @returns52 */53export function deleteCommit(commitId) {54 return request.delete(`/agile/v1/projects/${getProjectId()}/issue_comment/${commitId}`);55}56/**57 *è·åç¨ä¾ç¶æå表58 *59 * @export60 * @param {*} statusId61 * @param {*} issueId62 * @param {*} typeId63 * @returns64 */65export function loadStatus(statusId, issueId, typeId) {66 return request.get(67 `/issue/v1/projects/${getProjectId()}/schemes/query_transforms?current_status_id=${statusId}&issue_id=${issueId}&issue_type_id=${typeId}&apply_type=test`,68 );69}70/**71 *è·åå个ç¨ä¾è¯¦ç»ä¿¡æ¯72 *73 * @export74 * @param {*} issueId75 * @returns76 */77export function loadIssue(issueId) {78 return request.get(`/agile/v1/projects/${getProjectId()}/issues/${issueId}`);79}80/**81 *æ´æ°ç¨ä¾ç¶æ82 *83 * @export84 * @param {*} transformId85 * @param {*} issueId86 * @param {*} objVerNum87 * @returns88 */89export function updateStatus(transformId, issueId, objVerNum) {90 return request.put(`/agile/v1/projects/${getProjectId()}/issues/update_status?transformId=${transformId}&issueId=${issueId}&objectVersionNumber=${objVerNum}&applyType=test`);91}92/**93 *æ´æ°ç¨ä¾ä¿¡æ¯94 *95 * @export96 * @param {*} data97 * @returns98 */99export function updateIssue(data) {100 return request.put(`/agile/v1/projects/${getProjectId()}/issues?applyType=test`, data);101}102/**103 *ç¨ä¾å é¤104 *105 * @export106 * @param {*} issueId107 * @returns108 */109export function deleteIssue(issueId) {110 return request.delete(`/agile/v1/projects/${getProjectId()}/issues/${issueId}`);111}112/**113 *å é¤ç¨ä¾å
³è114 *115 * @export116 * @param {*} issueLinkId117 * @returns118 */119export function deleteLink(issueLinkId) {120 return request.delete(`/agile/v1/projects/${getProjectId()}/issue_links/${issueLinkId}`);121}122/**123 *å è½½æä½æ¥å¿124 *125 * @export126 * @param {*} issueId127 * @returns128 */129export function loadDatalogs(issueId) {130 return request.get(`agile/v1/projects/${getProjectId()}/data_log?issueId=${issueId}`);131}132/**133 *å è½½ç¨ä¾ä»¥å»ºç«å
³è134 *135 * @export136 * @param {number} [page=0]137 * @param {number} [size=10]138 * @param {*} issueId139 * @param {*} content140 * @returns141 */142export function loadIssuesInLink(page = 0, size = 10, issueId, content) {143 if (issueId && content) {144 return request.get(`/agile/v1/projects/${getProjectId()}/issues/agile/summary?issueId=${issueId}&self=false&content=${content}&page=${page}&size=${size}`);145 } else if (issueId && !content) {146 return request.get(`/agile/v1/projects/${getProjectId()}/issues/agile/summary?issueId=${issueId}&self=false&page=${page}&size=${size}`);147 } else if (!issueId && content) {148 return request.get(`/agile/v1/projects/${getProjectId()}/issues/agile/summary?self=false&content=${content}&page=${page}&size=${size}`);149 } else {150 return request.get(`/agile/v1/projects/${getProjectId()}/issues/agile/summary?self=false&page=${page}&size=${size}`);151 }152}153/**154 *å建ç¨ä¾é´çå
³è155 *156 * @export157 * @param {*} issueId158 * @param {*} issueLinkCreateDTOList159 * @returns160 */161export function createLink(issueId, issueLinkCreateDTOList) {162 return request.post(`/agile/v1/projects/${getProjectId()}/issue_links/${issueId}`, issueLinkCreateDTOList);163}164// éè¦æ´æ°165/**166 *å è½½å个ç¨ä¾çå
³èç¨ä¾167 *168 * @export169 * @param {*} issueId170 * @returns171 */172export function loadLinkIssues(issueId) {173 return request.get(`/agile/v1/projects/${getProjectId()}/issue_links/${issueId}?no_issue_test=false`);174}175/**176 *è·åç¨ä¾æ 177 *178 * @export179 * @returns180 */181export function getIssueTree() {182 return request.get(`/test/v1/projects/${getProjectId()}/issueFolder/query`);183}184/**185 *å¢å æ件夹186 *187 * @export188 * @param {*} data189 * @returns190 */191export function addFolder(data) {192 return request.post(`/test/v1/projects/${getProjectId()}/issueFolder`, data);193}194/**195 *ä¿®æ¹æ件夹196 *197 * @export198 * @param {*} data199 * @returns200 */201export function editFolder(data) {202 return request.put(`/test/v1/projects/${getProjectId()}/issueFolder/update`, data);203}204/**205 *å é¤æ件夹206 *207 * @export208 * @param {*} folderId209 * @returns210 */211export function deleteFolder(folderId) {212 return request.delete(`/test/v1/projects/${getProjectId()}/issueFolder/${folderId}`);213}214/**215 *è·åç¨ä¾çæ¥éª¤216 *217 * @export218 * @param {*} issueId219 * @returns220 */221export function getIssueSteps(issueId) {222 return request.get(`/test/v1/projects/${getProjectId()}/case/step/query/${issueId}`);223}224/**225 *è·åç¨ä¾çæ¥éª¤226 *227 * @export228 * @param {*} issueId229 * @returns230 */231export function createIssueStep(testCaseStepDTO) {232 return request.put(`/test/v1/projects/${getProjectId()}/case/step/change`, testCaseStepDTO);233}234/**235 *è·åç¨ä¾å
³èçæ§è¡236 *237 * @export238 * @param {*} issueId239 * @returns240 */241export function getIssueExecutes(issueId) {242 return request.get(`/test/v1/projects/${getProjectId()}/cycle/case/query/issue/${issueId}`);243}244/**245 *è·åå个issue,å°åæ 跳转æ
åµ246 *247 * @export248 * @param {number} [page=0]249 * @param {number} [size=10]250 * @param {*} search251 * @param {*} orderField252 * @param {*} orderType253 * @returns254 */255export function getSingleIssues(page = 0, size = 10, search, orderField, orderType) {256 // console.log(search);257 const searchDTO = { ...search };258 // searchDTO.advancedSearchArgs.typeCode = ['issue_test'];259 return request.post(`/test/v1/projects/${getProjectId()}/issueFolderRel/query?page=${page}&size=${size}`, { versionIds: [], searchDTO }, {260 params: {261 sort: `${orderField && orderType ? `${orderField},${orderType}` : ''}`,262 },263 });264}265/**266 *è·åææç¨ä¾ï¼å页267 *268 * @export269 * @param {number} [page=0]270 * @param {number} [size=10]271 * @param {*} search272 * @param {*} orderField273 * @param {*} orderType274 * @returns275 */276export function getAllIssues(page = 0, size = 10, search, orderField, orderType) {277 // console.log(search);278 const searchDTO = { ...search, otherArgs: search.searchArgs };279 // searchDTO.advancedSearchArgs.typeCode = ['issue_test'];280 return request.post(`/test/v1/projects/${getProjectId()}/issueFolderRel/query?page=${page}&size=${size}`, { versionIds: [], searchDTO: search }, {281 params: {282 sort: `${orderField && orderType ? `${orderField},${orderType}` : ''}`,283 },284 });285}286/**287 *è·åä¸ä¸ª/å¤ä¸ªçæ¬å
çç¨ä¾288 *289 * @export290 * @param {*} versionIds291 * @param {number} [page=0]292 * @param {number} [size=10]293 * @param {*} search294 * @param {*} orderField295 * @param {*} orderType296 * @returns297 */298export function getIssuesByVersion(versionIds, page = 0, size = 10, search, orderField, orderType) {299 const searchDTO = { ...search, otherArgs: search.searchArgs };300 // searchDTO.advancedSearchArgs.typeCode = ['issue_test'];301 return request.post(`/test/v1/projects/${getProjectId()}/issueFolderRel/query?page=${page}&size=${size}`, { versionIds, searchDTO: search }, {302 params: {303 sort: `${orderField && orderType ? `${orderField},${orderType}` : ''}`,304 },305 });306}307/**308 *è·åæ件夹ä¸çç¨ä¾309 *310 * @export311 * @param {*} folderId312 * @param {number} [page=0]313 * @param {number} [size=10]314 * @param {*} search315 * @param {*} orderField316 * @param {*} orderType317 * @returns318 */319export function getIssuesByFolder(folderId, page = 0, size = 10, search, orderField, orderType) {320 const searchDTO = { ...search, otherArgs: search.searchArgs };321 // searchDTO.advancedSearchArgs.typeCode = ['issue_test'];322 return request.post(`/test/v1/projects/${getProjectId()}/issueFolderRel/query?folderId=${folderId}&page=${page}&size=${size}`, { versionIds: [], searchDTO: search }, {323 params: {324 sort: `${orderField && orderType ? `${orderField},${orderType}` : ''}`,325 },326 });327}328/**329 *éè¿issueidæ¢åissueä¿¡æ¯330 *331 * @export332 * @param {*} versionId333 * @param {*} folderId334 * @param {*} ids335 * @returns336 */337export function getIssuesByIds(versionId, folderId, ids) {338 return request.post(`/test/v1/projects/${getProjectId()}/issueFolderRel/query/by/issueId${versionId ? `?versionId=${versionId}` : ''}${folderId ? `&folderId=${folderId}` : ''}`, ids);339}340/**341 *ç¨ä¾ç§»å¨342 *343 * @export344 * @param {*} versionId345 * @param {*} folderId346 * @param {*} issueLinks347 * @returns348 */349export function moveIssues(versionId, folderId, issueLinks) {350 return request.put(`/test/v1/projects/${getProjectId()}/issueFolderRel/move?versionId=${versionId}&folderId=${folderId}`, issueLinks);351}352/**353 *ç¨ä¾å
é354 *355 * @export356 * @param {*} versionId357 * @param {*} folderId358 * @param {*} issueLinks359 * @returns360 */361export function copyIssues(versionId, folderId, issueLinks) {362 return request.put(`/test/v1/projects/${getProjectId()}/issueFolderRel/copy?versionId=${versionId}&folderId=${folderId}`, issueLinks);363}364/**365 *æ件夹移å¨366 *367 * @export368 * @param {*} data369 * @returns370 */371export function moveFolders(data) {372 return request.put(`/test/v1/projects/${getProjectId()}/issueFolder/move`, data);373}374/**375 *æ件夹å
é376 *377 * @export378 * @param {*} data379 * @param {*} versionId380 * @returns381 */382export function copyFolders(data, versionId) {383 const folderIds = data.map(item => item.folderId);384 return request.put(`/test/v1/projects/${getProjectId()}/issueFolder/copy?versionId=${versionId}`, folderIds);385}386/**387 *è·åçæ¬å
çæææ件夹388 *389 * @export390 * @param {*} versionId391 * @returns392 */393export function getFoldersByVersion(versionId) {394 return request.get(`/test/v1/projects/${getProjectId()}/issueFolder/query/all${versionId ? `?versionId=${versionId}` : ''}`);395}396/**397 *çæ¬ä¸çåæ¥398 *399 * @export400 * @param {*} versionId401 * @returns402 */403export function syncFoldersInVersion(versionId) {404 // cycleId || versionId405 return request.post(`/test/v1/projects/${getProjectId()}/cycle/synchro/folder/all/in/version/${versionId}`);406}407/**408 *循ç¯ä¸çåæ¥409 *410 * @export411 * @param {*} cycleId412 * @returns413 */414export function syncFoldersInCycle(cycleId) {415 // cycleId || versionId416 return request.post(`/test/v1/projects/${getProjectId()}/cycle/synchro/folder/all/in/cycle/${cycleId}`);417}418/**419 *æ件夹åæ¥420 *421 * @export422 * @param {*} folderId423 * @param {*} cycleId424 * @returns425 */426export function syncFolder(folderId, cycleId) {427 return request.post(`/test/v1/projects/${getProjectId()}/cycle/synchro/folder/${folderId}/in/${cycleId}`);428}429/**430 *å个ç¨ä¾å
éèªèº«431 *432 * @export433 * @param {*} issueId434 * @param {*} copyConditionDTO435 * @returns436 */437export function cloneIssue(issueId, copyConditionDTO) {438 return request.put(`/test/v1/projects/${getProjectId()}/issueFolderRel/copy/issue/${issueId}`, copyConditionDTO);439}440/**441 *ææç¨ä¾å¯¼åº442 *443 * @export444 * @returns445 */446export function exportIssues() {447 return request.get(`/test/v1/projects/${getProjectId()}/case/download/excel`);448}449/**450 *çæ¬ä¸çç¨ä¾å¯¼åº451 *452 * @export453 * @param {*} versionId454 * @returns455 */456export function exportIssuesFromVersion(versionId) {457 return request.get(`/test/v1/projects/${getProjectId()}/case/download/excel/version?versionId=${versionId}`);458}459/**460 *æ件夹ä¸çç¨ä¾å¯¼åº461 *462 * @export463 * @param {*} folderId464 * @returns465 */466export function exportIssuesFromFolder(folderId) {467 return request.get(`/test/v1/projects/${getProjectId()}/case/download/excel/folder?folderId=${folderId}&userId=${AppState.userInfo.id}`);468}469/**470 *ä¸è½½å¯¼å
¥æ¨¡æ¿471 *472 * @export473 * @returns474 */475export function downloadTemplate() {476 return request.get(`/test/v1/projects/${getProjectId()}/case/download/excel/import_template`, { responseType: 'arraybuffer' });477}478/**479 *è·å导åºåå²480 *481 * @export482 * @returns483 */484export function getExportList() {485 return request.get(`/test/v1/projects/${getProjectId()}/test/fileload/history/issue`);486}487/**488 *导åºå¤±è´¥éè¯489 *490 * @export491 * @param {*} historyId492 * @returns493 */494export function exportRetry(historyId) {495 return request.get(`/test/v1/projects/${getProjectId()}/case/download/excel/fail?historyId=${historyId}`);496}497/**498 *è·å导å
¥åå²499 *500 * @export501 * @returns502 */503export function getImportHistory() {504 return request.get(`/test/v1/projects/${getProjectId()}/test/fileload/history/latest`);505}506/**507 * åæ¶æ¬æ¬¡å¯¼å
¥508 *509 * @export510 * @param {*} historyId511 * @returns512 */513export function cancelImport(historyId) {514 return request.put(`/test/v1/projects/${getProjectId()}/test/fileload/history/cancel?historyId=${historyId}`);515}516/**517 * å
éä¸ä¸ªæ¥éª¤518 *519 * @export520 * @param {*} data521 * @returns522 */523export function cloneStep(data) {524 return request.post(`/test/v1/projects/${getProjectId()}/case/step/clone`, data);525}526/**527 * æ´æ°ä¸ä¸ªæ¥éª¤528 *529 * @export530 * @param {*} data531 * @returns532 */533export function updateStep(data) {534 return request.put(`/test/v1/projects/${getProjectId()}/case/step/change`, data);535}536/**537 * å é¤ä¸ä¸ªæ¥éª¤538 *539 * @export540 * @param {*} data541 * @returns542 */543export function deleteStep(data) {544 return request.delete(`/test/v1/projects/${getProjectId()}/case/step`, data);...
nav.js
Source:nav.js
1import { getProjectId, getClusterId, bulkAdd } from 'ui/utils/navigation-tree';2import { get } from '@ember/object';3const rootNav = [4 // Project5 {6 scope: 'project',7 id: 'infra',8 localizedLabel: 'nav.infra.tab',9 ctx: [getProjectId],10 submenu: [11 {12 id: 'containers',13 localizedLabel: 'nav.containers.tab',14 route: 'authenticated.project.index',15 ctx: [getProjectId],16 resource: ['workload', 'ingress', 'service'],17 resourceScope: 'project',18 currentWhen: [19 'containers',20 'workload',21 'ingresses',22 'authenticated.project.dns',23 'volumes',24 ],25 },26 {27 id: 'hpa',28 localizedLabel: 'nav.infra.hpa',29 route: 'authenticated.project.hpa',30 ctx: [getProjectId],31 resource: ['horizontalpodautoscaler'],32 resourceScope: 'project',33 },34 {35 id: 'pipelines',36 localizedLabel: 'nav.infra.pipelines',37 route: 'authenticated.project.pipeline.pipelines',38 ctx: [getProjectId],39 resource: [],40 resourceScope: 'project',41 },42 {43 id: 'istio',44 localizedLabel: 'nav.tools.istio',45 route: 'authenticated.project.istio.index',46 ctx: [getProjectId],47 resource: [],48 resourceScope: 'project',49 currentWhen: [50 'authenticated.project.istio.project-istio',51 ],52 },53 {54 id: 'infra-secrets',55 localizedLabel: 'nav.infra.secrets',56 route: 'authenticated.project.secrets',57 ctx: [getProjectId],58 resource: ['namespacedsecret', 'secret', 'dockercredential', 'certificate'],59 resourceScope: 'project',60 currentWhen: [61 'authenticated.project.certificates',62 'authenticated.project.registries',63 'authenticated.project.secrets',64 ],65 },66 {67 id: 'infra-config-maps',68 localizedLabel: 'nav.infra.configMaps',69 route: 'authenticated.project.config-maps',70 ctx: [getProjectId],71 resource: ['configmap'],72 resourceScope: 'project',73 },74 ],75 },76 {77 scope: 'project',78 id: 'project-apps',79 localizedLabel: 'nav.apps.tab',80 route: 'apps-tab',81 ctx: [getProjectId],82 resource: ['app'],83 resourceScope: 'project',84 },85 {86 scope: 'project',87 id: 'namespaces',88 localizedLabel: 'nav.project.namespaces',89 route: 'authenticated.project.ns.index',90 ctx: [getProjectId],91 resource: ['namespace'],92 resourceScope: 'cluster',93 },94 {95 scope: 'project',96 id: 'project-security-roles',97 localizedLabel: 'nav.infra.members',98 route: 'authenticated.project.security.members',99 resource: ['projectroletemplatebinding'],100 resourceScope: 'global',101 ctx: [getProjectId],102 },103 {104 scope: 'project',105 id: 'project-tools',106 localizedLabel: 'nav.tools.tab',107 ctx: [getProjectId],108 resource: [],109 resourceScope: 'global',110 submenu: [111 {112 id: 'tools-alerts',113 localizedLabel: 'nav.tools.alerts',114 route: 'authenticated.project.alert',115 resource: [],116 ctx: [getProjectId],117 resourceScope: 'global',118 },119 {120 id: 'manage-catalogs',121 localizedLabel: 'nav.tools.catalogs',122 route: 'authenticated.project.project-catalogs',123 ctx: [getProjectId],124 resource: ['catalog', 'project-catalog'],125 resourceScope: 'global',126 },127 {128 id: 'tools-logging',129 localizedLabel: 'nav.tools.logging',130 route: 'authenticated.project.logging',131 resourceScope: 'global',132 resource: [],133 ctx: [getProjectId],134 },135 {136 id: 'tools-monitoring',137 localizedLabel: 'nav.tools.monitoring',138 route: 'authenticated.project.monitoring.project-setting',139 resourceScope: 'global',140 resource: [],141 ctx: [getProjectId],142 },143 {144 id: 'tools-pipeline',145 localizedLabel: 'nav.tools.pipeline',146 route: 'authenticated.project.pipeline.settings',147 resource: ['sourcecodeproviderconfig'],148 resourceScope: 'project',149 ctx: [getProjectId],150 },151 ]152 },153 // Cluster154 {155 scope: 'cluster',156 id: 'cluster-k8s',157 localizedLabel: 'nav.cluster.dashboard',158 route: 'authenticated.cluster.monitoring.index',159 ctx: [getClusterId],160 resource: ['node'],161 resourceScope: 'global',162 },163 {164 scope: 'cluster',165 id: 'cluster-nodes',166 localizedLabel: 'nav.cluster.nodes',167 route: 'authenticated.cluster.nodes',168 ctx: [getClusterId],169 resource: ['node'],170 resourceScope: 'global',171 },172 {173 scope: 'cluster',174 id: 'cluster-storage',175 localizedLabel: 'nav.cluster.storage.tab',176 ctx: [getClusterId],177 resource: ['clusterroletemplatebinding'],178 resourceScope: 'global',179 submenu: [180 {181 scope: 'cluster',182 id: 'cluster-storage-volumes',183 localizedLabel: 'nav.cluster.storage.volumes',184 route: 'authenticated.cluster.storage.persistent-volumes.index',185 ctx: [getClusterId],186 resource: ['project'],187 resourceScope: 'global',188 },189 {190 scope: 'cluster',191 id: 'cluster-storage-classes',192 localizedLabel: 'nav.cluster.storage.classes',193 route: 'authenticated.cluster.storage.classes.index',194 ctx: [getClusterId],195 resource: ['project'],196 resourceScope: 'global',197 },198 ]199 },200 {201 scope: 'cluster',202 id: 'cluster-projects',203 localizedLabel: 'nav.cluster.projects',204 route: 'authenticated.cluster.projects.index',205 ctx: [getClusterId],206 resource: ['project'],207 resourceScope: 'global',208 },209 {210 scope: 'cluster',211 id: 'cluster-security-roles',212 localizedLabel: 'nav.cluster.members',213 route: 'authenticated.cluster.security.members.index',214 resource: ['clusterroletemplatebinding'],215 resourceScope: 'global',216 ctx: [getClusterId],217 },218 {219 scope: 'cluster',220 id: 'cluster-tools',221 localizedLabel: 'nav.tools.tab',222 ctx: [getClusterId],223 resource: [],224 resourceScope: 'global',225 submenu: [226 {227 id: 'cluster-tools-alert',228 localizedLabel: 'nav.tools.alerts',229 route: 'authenticated.cluster.alert',230 resourceScope: 'global',231 resource: [],232 ctx: [getClusterId],233 },234 {235 id: 'cluster-tools-backups',236 localizedLabel: 'nav.tools.backups',237 route: 'authenticated.cluster.backups',238 resourceScope: 'global',239 resource: ['etcdbackup'],240 ctx: [getClusterId],241 condition() {242 return get(this, 'cluster.rancherKubernetesEngineConfig')243 }244 },245 {246 scope: 'cluster',247 id: 'cluster-catalogs',248 localizedLabel: 'nav.admin.catalogs',249 route: 'authenticated.cluster.cluster-catalogs',250 ctx: [getClusterId],251 resource: ['catalog', 'cluster-catalog'],252 resourceScope: 'global',253 },254 {255 id: 'cluster-tools-notifiers',256 localizedLabel: 'nav.tools.notifiers',257 route: 'authenticated.cluster.notifier',258 resourceScope: 'global',259 resource: [],260 ctx: [getClusterId],261 },262 {263 id: 'cluster-tools-logging',264 localizedLabel: 'nav.tools.logging',265 route: 'authenticated.cluster.logging',266 resourceScope: 'global',267 resource: [],268 ctx: [getClusterId],269 },270 {271 id: 'cluster-tools-monitoring',272 localizedLabel: 'nav.tools.monitoring',273 route: 'authenticated.cluster.monitoring.cluster-setting',274 resourceScope: 'global',275 resource: [],276 ctx: [getClusterId],277 },278 {279 id: 'cluster-tools-istio',280 localizedLabel: 'nav.tools.istio',281 route: 'authenticated.cluster.istio.cluster-setting',282 resourceScope: 'global',283 resource: [],284 ctx: [getClusterId],285 },286 {287 id: 'cluster-tools-cis-scan',288 localizedLabel: 'nav.tools.cisScans',289 route: 'authenticated.cluster.cis/scan',290 resourceScope: 'global',291 resource: [],292 ctx: [getClusterId],293 },294 ],295 },296 // Global297 {298 scope: 'global',299 id: 'global-clusters',300 localizedLabel: 'nav.admin.clusters.tab',301 route: 'global-admin.clusters',302 resource: ['cluster'],303 resourceScope: 'global',304 },305 {306 scope: 'global',307 id: 'multi-cluster-apps',308 localizedLabel: 'nav.admin.multiClusterApps',309 route: 'global-admin.multi-cluster-apps',310 resource: ['multiclusterapp'],311 resourceScope: 'global',312 },313 {314 scope: 'global',315 id: 'global-settings',316 localizedLabel: 'nav.settings.tab',317 route: 'global-admin.settings.advanced',318 resourceScope: 'global',319 },320 {321 scope: 'global',322 id: 'global-security',323 localizedLabel: 'nav.admin.security.tab',324 submenu: [325 {326 scope: 'global',327 id: 'global-accounts',328 localizedLabel: 'nav.admin.security.accounts',329 route: 'global-admin.security.accounts.users',330 resource: ['user'],331 resourceScope: 'global',332 },333 {334 scope: 'global',335 id: 'global-group-accounts',336 localizedLabel: 'nav.admin.security.groupAccounts',337 route: 'global-admin.security.accounts.groups',338 resource: ['globalrolebinding'],339 resourceScope: 'global',340 },341 {342 id: 'global-security-roles',343 localizedLabel: 'nav.admin.security.roles',344 route: 'global-admin.security.roles.index',345 resource: ['roletemplate'],346 resourceScope: 'global',347 },348 {349 id: 'global-security-roles',350 localizedLabel: 'nav.admin.security.podSecurityPolicies',351 route: 'global-admin.security.policies',352 resource: ['podsecuritypolicytemplate'],353 resourceScope: 'global',354 },355 {356 id: 'global-security-authentication',357 localizedLabel: 'nav.admin.security.authentication',358 route: 'global-admin.security.authentication',359 condition() {360 const authConfigs = this.get('globalStore').all('authConfig');361 return authConfigs.get('length') > 0;362 }363 },364 ],365 },366 {367 scope: 'global',368 id: 'global-tools',369 localizedLabel: 'nav.tools.tab',370 submenu: [371 {372 scope: 'global',373 id: 'global-catalogs',374 localizedLabel: 'nav.admin.catalogs',375 route: 'global-admin.catalog',376 resource: ['catalog'],377 resourceScope: 'global',378 },379 {380 scope: 'global',381 id: 'nodes-node-drivers',382 localizedLabel: 'nav.admin.drivers',383 route: 'nodes.custom-drivers',384 resource: ['nodedriver', 'kontainerdriver'],385 resourceScope: 'global',386 },387 {388 id: 'global-dns-entries',389 localizedLabel: 'nav.admin.globalDnsEntries',390 route: 'global-admin.global-dns.entries',391 resource: ['globaldns'],392 resourceScope: 'global',393 },394 {395 id: 'global-dns-providers',396 localizedLabel: 'nav.admin.globalDnsProviders',397 route: 'global-admin.global-dns.providers',398 resource: ['globaldnsprovider'],399 resourceScope: 'global',400 },401 {402 id: 'global-monitoring',403 localizedLabel: 'nav.admin.globalMonitoring',404 route: 'global-admin.global-monitoring',405 resourceScope: 'global',406 condition() {407 return !!get(this, 'access.admin');408 }409 },410 // {411 // id: 'global-registry',412 // localizedLabel: 'nav.admin.globalRegistry',413 // route: 'global-admin.global-registry',414 // // There is no schema for global registry. But we can use global dns to check if it is a HA env.415 // resource: ['globaldns'],416 // resourceScope: 'global',417 // },418 {419 id: 'rke-template',420 localizedLabel: 'nav.admin.clusters.rkeTemplate',421 route: 'global-admin.cluster-templates',422 resource: ['clustertemplate'],423 resourceScope: 'global',424 },425 ],426 },427// {428// scope: 'global',429// id: 'global-advanced',430// localizedLabel: 'nav.admin.settings.advanced',431// route: 'global-admin.settings.advanced',432// disabled: true,433// },434]435export function initialize(/* appInstance*/) {436 bulkAdd(rootNav);437}438export default {439 name: 'nav',440 initialize,441 after: 'store',...
navigation-tree.js
Source:navigation-tree.js
1import Ember from 'ember';2import C from 'ui/utils/constants';3import { getCatalogNames } from 'ui/utils/parse-catalog-setting';4import { tagChoices } from 'ui/models/stack';5import { uniqKeys } from 'ui/utils/util';6// Useful context/condition shortcuts7export const getProjectId = function() { return this.get('projectId'); };8export const getNamespaceId = function() { return this.get('namespaceId'); };9export const k8sReady = function() { return this.get('kubernetesReady'); };10export const k8sNotReady = function() { return !this.get('kubernetesReady'); };11export const swarmReady = function() { return this.get('swarmReady'); };12export const swarmNotReady = function() { return !this.get('swarmReady'); };13export const mesosReady = function() { return this.get('mesosReady'); };14export const mesosNotReady = function() { return !this.get('mesosReady'); };15export const isOwner = function() { return this.get('isOwner'); };16/* Tree item options17 {18 id: 'str' (identifier to allow removal... should be unique)19 localizedLabel: 'i18n key', (or function that returns one)20 label: 'Displayed unlocalized label', (or function that returns string)21 icon: 'icon icon-something',22 condition: function() {23 // return true if this item should be displayed24 // condition can depend on anything page-header/component.js shouldUpdateNavTree() depends on25 }26 alertRoute: 'target.route.path', // as in link-to27 alertCondition: function() {28 // return true if the alert (!) icon should be displayed29 // can depend on anything page-header/component.js shouldUpdateNavTree() depends on30 }31 target: '_blank', (for url only)32 route: 'target.route.path', // as in link-to33 ctx: ['values', 'asContextToRoute', orFunctionThatReturnsValue, anotherFunction]34 queryParams: {a: 'hello', b: 'world'],35 moreCurrentWhen: ['additional.routes','for.current-when'],36 submenu: [37 // Another tree item (only one level of submenu supported, no arbitrary depth nesting)38 {...},39 {...}40 ]41 },42*/43const navTree = [44 // Kubernetes45 {46 id: 'k8s',47 localizedLabel: 'nav.k8s.tab',48 route: 'k8s-tab',49 ctx: [getProjectId],50 condition: function() { return this.get('hasKubernetes'); },51 submenu: [52 {53 id: 'k8s-notready',54 icon: 'icon icon-spinner icon-spin',55 localizedLabel: 'nav.notReady',56 condition: k8sNotReady,57 },58 {59 id: 'k8s-dashboard',60 localizedLabel: 'nav.k8s.dashboard',61 icon: 'icon icon-kubernetes',62 route: 'k8s-tab.dashboard',63 ctx: [getProjectId],64 condition: k8sReady,65 },66 {67 id: 'k8s-cli',68 localizedLabel: 'nav.k8s.cli',69 icon: 'icon icon-terminal',70 route: 'k8s-tab.kubectl',71 ctx: [getProjectId],72 condition: k8sReady,73 },74 {75 id: 'k8s-system',76 localizedLabel: 'nav.k8s.system',77 icon: 'icon icon-network',78 route: 'stacks',79 condition: isOwner,80 ctx: [getProjectId],81 queryParams: {which: C.EXTERNAL_ID.KIND_NOT_ORCHESTRATION},82 },83 ],84 },85 // Swarm86 {87 id: 'swarm',88 localizedLabel: 'nav.swarm.tab',89 condition: function() { return this.get('hasProject') && this.get('hasSwarm'); },90 route: 'swarm-tab',91 ctx: [getProjectId],92 moreCurrentWhen: ['stacks'],93 submenu: [94 {95 id: 'swarm-cli',96 localizedLabel: 'nav.swarm.cli',97 icon: 'icon icon-terminal',98 route: 'swarm-tab.console',99 ctx: [getProjectId],100 condition: swarmReady,101 },102 {103 id: 'swarm-notready',104 icon: 'icon icon-spinner icon-spin',105 localizedLabel: 'nav.notReady',106 condition: swarmNotReady,107 },108 {109 id: 'swarm-system',110 localizedLabel: 'nav.swarm.system',111 icon: 'icon icon-network',112 route: 'stacks',113 condition: isOwner,114 ctx: [getProjectId],115 queryParams: {which: C.EXTERNAL_ID.KIND_NOT_ORCHESTRATION},116 },117 ]118 },119 // Mesos120 {121 id: 'mesos',122 localizedLabel: 'nav.mesos.tab',123 condition: function() { return this.get('hasProject') && this.get('hasMesos'); },124 route: 'mesos-tab',125 ctx: [getProjectId],126 submenu: [127 {128 id: 'mesos-web',129 localizedLabel: 'nav.mesos.web',130 icon: 'icon icon-link',131 route: 'mesos-tab.index',132 ctx: [getProjectId],133 condition: mesosReady,134 },135 {136 id: 'mesos-notready',137 icon: 'icon icon-spinner icon-spin',138 localizedLabel: 'nav.notReady',139 condition: mesosNotReady,140 },141 {142 id: 'mesos-system',143 localizedLabel: 'nav.mesos.system',144 icon: 'icon icon-network',145 route: 'stacks',146 condition: isOwner,147 ctx: [getProjectId],148 queryParams: {which: C.EXTERNAL_ID.KIND_NOT_ORCHESTRATION},149 },150 ],151 },152 // Cattle153 {154 id: 'cattle',155 localizedLabel: 'nav.cattle.tab',156 route: 'stacks',157 queryParams: {which: C.EXTERNAL_ID.KIND_USER, tags: ''},158 ctx: [getProjectId],159 condition: function() { return this.get('hasProject') && !this.get('hasKubernetes') && !this.get('hasSwarm') && !this.get('hasMesos'); },160 submenu: getStacksSubtree,161 },162 // Catalog163 {164 id: 'catalog',165 localizedLabel: 'nav.catalog.tab',166 route: 'catalog-tab',167 queryParams: {catalogId: 'all'},168 ctx: [getProjectId],169 condition: function() {170 return this.get('hasProject') &&171 this.get(`settings.${C.SETTING.CATALOG_URL}`) &&172 !this.get('hasKubernetes') &&173 !this.get('hasSwarm');174 },175 submenu: getCatalogSubtree,176 },177 // Infrastructure178 {179 id: 'infra',180 localizedLabel: 'nav.infra.tab',181 route: 'infrastructure-tab',182 ctx: [getProjectId],183 condition: function() { return this.get('hasProject'); },184 submenu: [185 {186 id: 'infra-hosts',187 localizedLabel: 'nav.infra.hosts',188 icon: 'icon icon-host',189 route: 'hosts',190 ctx: [getProjectId],191 },192 {193 id: 'infra-containers',194 localizedLabel: 'nav.infra.containers',195 icon: 'icon icon-box',196 route: 'containers',197 ctx: [getProjectId],198 },199 {200 id: 'infra-storagepools',201 localizedLabel: 'nav.infra.storagePage',202 icon: 'icon icon-hdd',203 route: 'storagepools',204 ctx: [getProjectId],205 },206 {207 id: 'infra-secrets',208 localizedLabel: 'nav.infra.secrets',209 icon: 'icon icon-secrets',210 route: 'secrets',211 ctx: [getProjectId],212 },213 /*214 {215 id: 'infra-backuptargets',216 localizedLabel: 'nav.infra.backupTarget',217 icon: 'icon icon-target',218 route: 'backuptargets',219 ctx: [getProjectId],220 condition: function() { return this.get('hasVm'); },221 },222 */223 {224 id: 'infra-certificates',225 localizedLabel: 'nav.infra.certificates',226 icon: 'icon icon-certificate',227 route: 'certificates',228 ctx: [getProjectId],229 },230 {231 id: 'infra-registries',232 localizedLabel: 'nav.infra.registries',233 icon: 'icon icon-database',234 route: 'registries',235 ctx: [getProjectId],236 },237 ],238 },239 // Admin240 {241 id: 'admin',242 localizedLabel: 'nav.admin.tab',243 route: 'admin-tab',244 condition: function() { return this.get('isAdmin'); },245 alertRoute: 'admin-tab.auth',246 alertCondition: function() {247 return !this.get('access.enabled') && this.get('prefs.'+C.PREFS.ACCESS_WARNING) !== false;248 },249 submenu: [250 {251 id: 'admin-audit',252 localizedLabel: 'nav.admin.audit',253 icon: 'icon icon-folder-open',254 route: 'admin-tab.audit-logs',255 },256 {257 id: 'admin-accounts',258 localizedLabel: 'nav.admin.accounts',259 icon: 'icon icon-users',260 route: 'admin-tab.accounts',261 },262 {263 id: 'admin-processes',264 localizedLabel: 'nav.admin.processes',265 icon: 'icon icon-processes',266 route: 'admin-tab.processes',267 },268 {269 divider: true270 },271 {272 id: 'admin-ha',273 localizedLabel: 'nav.admin.ha',274 icon: 'icon icon-umbrella',275 route: 'admin-tab.ha',276 },277 {278 id: 'admin-access',279 localizedLabel: 'nav.admin.access',280 icon: 'icon icon-key',281 route: 'admin-tab.auth',282 },283 {284 id: 'admin-machine',285 localizedLabel: 'nav.admin.machine',286 icon: 'icon icon-host',287 route: 'admin-tab.machine',288 },289 {290 id: 'admin-settings',291 localizedLabel: 'nav.admin.settings',292 icon: 'icon icon-network',293 route: 'admin-tab.settings',294 },295 ],296 },297 // API298 {299 id: 'api',300 localizedLabel: 'nav.api.tab',301 icon: 'icon icon-terminal',302 route: 'authenticated.project.api.keys',303 ctx: [getProjectId],304 condition: function() { return this.get('hasProject'); },305 submenu: [306 {307 id: 'api-keys',308 localizedLabel: 'nav.api.keys',309 icon: 'icon icon-key',310 route: 'authenticated.project.api.keys',311 ctx: [getProjectId],312 },313 {314 id: 'api-hooks',315 localizedLabel: 'nav.api.hooks',316 icon: 'icon icon-link',317 route: 'authenticated.project.api.hooks',318 ctx: [getProjectId],319 },320 ],321 },322];323export function addItem(opt) {324 navTree.pushObject(opt);325}326export function removeId(id) {327 for ( let i = navTree.length-1 ; i >= 0 ; i-- )328 {329 if ( navTree[i].id === id ) {330 navTree.removeAt(i);331 } else if ( navTree[i].submenu && Ember.isArray(navTree[i].submenu) ) {332 let sub = navTree[i].submenu;333 for ( var j = sub.length-1 ; j >= 0 ; j-- )334 {335 if ( sub[j].id === id ) {336 sub.removeAt(j);337 }338 }339 }340 }341}342export function get() {343 return Ember.copy(navTree,true);344}345function getStacksSubtree() {346 let out = [347 {348 id: 'cattle-all',349 localizedLabel: 'nav.cattle.all',350 icon: 'icon icon-globe',351 route: 'stacks',352 ctx: [getProjectId],353 queryParams: {which: C.EXTERNAL_ID.KIND_ALL, tags: ''},354 },355 { divider: true },356 {357 id: 'cattle-user',358 localizedLabel: 'nav.cattle.user',359 icon: 'icon icon-layers',360 route: 'stacks',361 ctx: [getProjectId],362 queryParams: {which: C.EXTERNAL_ID.KIND_USER, tags: ''},363 condition: isOwner,364 },365 {366 id: 'cattle-infra',367 localizedLabel: 'nav.cattle.system',368 icon: 'icon icon-gear',369 route: 'stacks',370 ctx: [getProjectId],371 condition: isOwner,372 queryParams: {which: C.EXTERNAL_ID.KIND_INFRA, tags: ''},373 }374 ];375 let stacks = this.get('store').all('stack');376 let choices = uniqKeys(tagChoices(stacks)).sort();377 if ( choices.length ) {378 out.push({divider: true});379 choices.forEach((choice) => {380 out.push({381 id: 'cattle-tag-'+choice,382 label: choice,383 icon: 'icon icon-tag',384 route: 'stacks',385 ctx: [getProjectId],386 condition: isOwner,387 queryParams: {which: C.EXTERNAL_ID.KIND_ALL, tags: choice},388 });389 });390 }391 return out;392}393function getCatalogSubtree() {394 let repos = getCatalogNames(this.get(`settings.${C.SETTING.CATALOG_URL}`));395 let showAll = repos.length > 1;396 let out = [];397 if ( showAll ) {398 out.push({399 id: 'catalog-all',400 localizedLabel: 'nav.catalog.all',401 icon: 'icon icon-globe',402 route: 'catalog-tab',403 ctx: [getProjectId],404 queryParams: {catalogId: 'all'}405 });406 out.push({divider: true});407 }408 if (repos.indexOf(C.CATALOG.LIBRARY_KEY) >= 0 ) {409 repos.removeObject(C.CATALOG.LIBRARY_KEY);410 out.push({411 id: 'catalog-library',412 localizedLabel: 'nav.catalog.library',413 icon: 'icon icon-catalog',414 route: 'catalog-tab',415 ctx: [getProjectId],416 queryParams: {catalogId: 'library'}417 });418 }419 if (repos.indexOf(C.CATALOG.COMMUNITY_KEY) >= 0 ) {420 repos.removeObject(C.CATALOG.COMMUNITY_KEY);421 out.push({422 id: 'catalog-community',423 localizedLabel: 'nav.catalog.community',424 icon: 'icon icon-users',425 route: 'catalog-tab',426 ctx: [getProjectId],427 queryParams: {catalogId: 'community'}428 });429 }430 if ( out.length > 2 ) {431 out.push({divider: true});432 }433 repos.forEach((repo) => {434 out.push({435 id: 'catalog-'+repo,436 label: repo,437 icon: 'icon icon-user',438 route: 'catalog-tab',439 ctx: [getProjectId],440 queryParams: {catalogId: repo}441 });442 });443 if ( out.length === 1 ) {444 return [];445 } else {446 return out;447 }...
TestPlanApi.js
Source:TestPlanApi.js
...7 * @param {*} testPlanStatus8 * @returns9 */10export function getPlanTree(testPlanStatus) {11 return request.get(`/test/v1/projects/${getProjectId()}/plan/tree?status_code=${testPlanStatus}`);12}13export function getPlanTreeById(planId) {14 return request.get(`/test/v1/projects/${getProjectId()}/cycle/tree?plan_id=${planId}`);15}16export function createPlan(data) {17 return request.post(`/test/v1/projects/${getProjectId()}/plan`, data);18}19export function clonePlan(planId) {20 return request.post(`/test/v1/projects/${getProjectId()}/plan/${planId}/clone`);21}22export function getPlan(planId) {23 return request.get(`/test/v1/projects/${getProjectId()}/plan/${planId}/query`);24}25export function editPlan(data) {26 return request.put(`/test/v1/projects/${getProjectId()}/plan`, data);27}28export function deletePlan(planId) {29 return request.delete(`/test/v1/projects/${getProjectId()}/plan/${planId}/delete`);30}31export function addFolder(data) {32 return request.post(`/test/v1/projects/${getProjectId()}/cycle`, data);33}34export function editFolder(data) {35 return request.put(`/test/v1/projects/${getProjectId()}/cycle`, data);36}37export function moveFolder(folderIds = [], targetFolderId, lastRank, nextRank) {38 const urlParamStr = queryString.stringify({39 target_cycle_id: targetFolderId && Number(targetFolderId) !== 0 ? targetFolderId : undefined,40 last_moved_cycle_id: folderIds[folderIds.length - 1],41 });42 const requestParam = urlParamStr && urlParamStr !== '' ? `?${urlParamStr}` : '';43 return request.put(`/test/v1/projects/${getProjectId()}/cycle/move${requestParam}`,44 {45 cycleIds: folderIds,46 lastRank,47 nextRank,48 });49}50export function deleteFolder(folderId) {51 return request.delete(`/test/v1/projects/${getProjectId()}/cycle/delete/${folderId}`);52}53export function importIssueToFolder(planId, folderId, data) {54 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/import?plan_id=${planId}&cycle_id=${folderId}`, { caseSelected: data });55}56/**57 * æ ¹æ®ç®å½idå计åidè·åæ§è¡58 */59export function getExecutesByFolder({60 planId, folderId, search, orderField, orderType, current, pageSize,61}) {62 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/query/caseList?cycle_id=${planId !== folderId ? folderId : ''}&plan_id=${planId}&page=${current}&size=${pageSize}`, search, {63 params: {64 sort: `${orderField && orderType ? `${orderField},${orderType}` : ''}`,65 },66 });67}68/**69 * éè¿æµè¯è®¡åè·åç»è®¡ç¶æ70 *71 * @export72 * @param {*} planId73 * @returns74 */75export function getStatusByFolder({ planId, folderId }) {76 return request.get(`/test/v1/projects/${getProjectId()}/cycle/case/query/status?cycle_id=${planId !== folderId ? folderId : ''}&plan_id=${planId}`);77}78/**79 * è·å计å详æ
80 *81 * @export82 * @param {*} planId83 * @returns84 */85export function getPlanDetail(planId) {86 return request.get(`/test/v1/projects/${getProjectId()}/plan/${planId}/info`);87}88/**89 * æ¹éç»æ§è¡æå®æ§è¡äºº90 *91 * @export92 * @param {*} executeIds93 * @param {*} assignUserId94 * @returns95 */96export function executesAssignTo(executeIds, assignUserId) {97 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/batchAssign/cycleCase?assign_user_id=${assignUserId}`, executeIds);98}99/**100 * å é¤ç¶æ101 *102 * @export103 * @param {*} executeId104 * @returns105 */106export function deleteExecute(executeId) {107 return request.delete(`/test/v1/projects/${getProjectId()}/cycle/case?cycleCaseId=${executeId}`);108}109export function updatePlanStatus(updateData) {110 return request.post(`/test/v1/projects/${getProjectId()}/plan/update_status`, updateData);111}112/**113 * å¿«ééè¿æå¿«é失败æè
ç»æ§è¡æåº114 *115 * @export116 * @param {*} data117 * @returns118 */119export function updateExecute(data) {120 return request.put(`/test/v1/projects/${getProjectId()}/cycle/case/cycle_case`, data);121}122/**123 *124 *125 * @export126 * @param {*} executeId127 * @returns128 */129export function getUpdateCompared(executeId) {130 return request.get(`/test/v1/projects/${getProjectId()}/cycle/case/${executeId}/compared`);131}132/**133 * 确认æ´æ°ï¼å¨åæ´æéå¼¹æ¡ç¹å»ç¡®è®¤æ´æ°134 *135 * @export136 * @param {*} data137 * @returns138 */139export function comfirmUpdate(data) {140 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/compared`, data);141}142export function ignoreUpdate(executed) {143 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/${executed}/ignore/update`, {});144}145export function getPlanList() {146 return request.get(`/test/v1/projects/${getProjectId()}/plan/project_plan`);147}148export function updateFoldRangeDate(isCycle, data) {149 return request.post(`/test/v1/projects/${getProjectId()}/cycle/operate_calendar?isCycle=${isCycle}`, data);150}151/**152 * ææ¶é´æåº153 * @param {*} planId154 */155export function getRankByDate(planId) {156 return request.post(`/test//v1/projects/${getProjectId()}/plan/${planId}/order_by_from_date`);157}158export function checkPlanName(name) {159 return request.get(`/test/v1/projects/${getProjectId()}/plan/check_name`, { params: { name } });160}161export function batchRemove(executeIds) {162 return request.delete(`/test/v1/projects/${getProjectId()}/cycle/case/async_batch_delete`, {163 data: executeIds,164 });165}166export function batchAssignFolder(data) {167 return request.put(`/test/v1/projects/${getProjectId()}/cycle/case/assign`, {}, { params: data });168}169export function batchCancelAssignFolder(data) {170 return request.delete(`/test/v1/projects/${getProjectId()}/cycle/case/assign`, { params: data });...
ProjectOverview.js
Source:ProjectOverview.js
...39 componentDidMount() {40 if (Object.keys(this.props.projectList).length === 0) {41 this.props.dispatch(getProjects())42 }43 if (this.getProjectId() != null) {44 this.props.dispatch(getImages(this.getProjectId()))45 }46 }47 componentDidUpdate(prevProps, prevState, snapshot) {48 if (this.props.imageList[this.getProjectId()] != null && prevProps.imageList[this.getProjectId()] == null) {49 // incoming images50 this.getProjectImages().forEach(image => {51 this.props.dispatch(getAnnotationForImage(this.getProjectId(), image._id))52 })53 }54 }55 getProjectId() {56 return this.props.match.params.projectId57 }58 getProjectImages() {59 const projectId = this.getProjectId()60 if (this.props.imageList[projectId] == null) {61 return []62 }63 return util.idMapToList(this.props.imageList[projectId])64 }65 toggleShowFileNames() {66 this.setState(oldState => ({67 ...oldState,68 showFileNames: !oldState.showFileNames,69 }))70 }71 render() {72 if (this.getProjectId() == null || this.props.projectList[this.getProjectId()] == null) {73 return null74 }75 return (76 <div>77 <Breadcrumb project={this.props.projectList[this.getProjectId()]} />78 <h5 style={mixins.heading}>Upload Image</h5>79 <ImageUploadForm projectId={this.getProjectId()} />80 <h5 style={mixins.heading}>81 <div style={mixins.relative}>82 Images83 <div style={style.fileNameToggle}>84 <input85 type="checkbox"86 id="show-file-names"87 defaultChecked={this.state.showFileNames}88 onChange={this.toggleShowFileNames}89 style={mixins.checkbox}90 />91 <label style={mixins.label} htmlFor="show-file-names">92 Show File Names93 </label>94 </div>95 </div>96 </h5>97 <ImageList98 project={this.props.projectList[this.getProjectId()]}99 images={this.getProjectImages()}100 annotations={this.props.annotationList}101 showFilenames={this.state.showFileNames}102 />103 <h5 style={mixins.heading}>Annotation Types</h5>104 <div style={style.projectSettings}>105 <div>106 <AnnotationTypeList107 projectId={this.getProjectId()}108 annotationTypes={109 this.props.projectList[this.getProjectId()]110 ? this.props.projectList[this.getProjectId()].annotationTypes111 : {}112 }113 />114 </div>115 <div>116 <ProjectSettingsImpex project={this.props.projectList[this.getProjectId()]} />117 </div>118 </div>119 </div>120 )121 }122}...
cycleApi.js
Source:cycleApi.js
1import { getProjectId, request } from '../common/utils';2export function getCycleTree(assignedTo) {3 return request.get(`/test/v1/projects/${getProjectId()}/cycle/query${assignedTo ? `?assignedTo=${assignedTo}` : ''}`);4}5export function getCycleTreeByVersionId(versionId) {6 return request.get(`/test/v1/projects/${getProjectId()}/cycle/batch/clone/query/${versionId}`);7}8export function getExecutesByCycleId(pagination, cycleId, filters, type) {9 const { size, page } = pagination;10 const Filters = {11 ...filters || {},12 searchDTO: {13 advancedSearchArgs: {14 statusId: [],15 priorityId: [],16 },17 searchArgs: {18 issueNum: '',19 summary: '',20 },21 },22 };23 if (Filters) {24 Object.keys(filters || {}).forEach((filter) => {25 // console.log(filter, Filters);26 if (['priorityId'].includes(filter)) {27 Filters.searchDTO.advancedSearchArgs[filter] = Filters[filter];28 } else if (['summary'].includes(filter)) {29 Filters.searchDTO.searchArgs[filter] = Filters[filter][0];30 } else {31 Filters[filter] = Filters[filter][0];32 }33 });34 }35 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/query/cycleId?size=${size}&page=${page}`, {36 cycleId,37 ...Filters,38 });39}40export function addCycle(data) {41 return request.post(`/test/v1/projects/${getProjectId()}/cycle`, data);42}43export function editExecuteDetail(data) {44 return request.post(`/test/v1/projects/${getProjectId()}/cycle/case/update`, data);45}46export function deleteExecute(executeId) {47 return request.delete(`/test/v1/projects/${getProjectId()}/cycle/case?cycleCaseId=${executeId}`);48}49export function deleteCycleOrFolder(cycleId) {50 return request.delete(`/test/v1/projects/${getProjectId()}/cycle/delete/${cycleId}`);51}52export function clone(cycleId, data, type) {53 if (type === 'CLONE_FOLDER') {54 return request.post(`/test/v1/projects/${getProjectId()}/cycle/clone/folder/${cycleId}`, data);55 } else if (type === 'CLONE_CYCLE') {56 return request.post(`/test/v1/projects/${getProjectId()}/cycle/clone/cycle/${cycleId}`, data);57 }58 return request.post(`/test/v1/projects/${getProjectId()}/cycle/clone/folder/${cycleId}`, data);59}60export function batchClone(targetVersionId, data) { 61 return request.post(`/test/v1/projects/${getProjectId()}/cycle/batch/clone/${targetVersionId}`, data);62}63export function getLastCloneData() { 64 return request.get(`/test/v1/projects/${getProjectId()}/cycle/batch/clone/latest`);65}66export function addFolder(data) {67 return request.post(`/test/v1/projects/${getProjectId()}/cycle`, data);68}69/**70 * ä¿®æ¹å¾ªç¯æé¶æ®µä¿¡æ¯71 * @param {*} data 72 */73export function editFolder(data) {74 return request.put(`/test/v1/projects/${getProjectId()}/cycle`, data);75}76/**77 * æå¨æ¹åæ¥æ78 * @param {*} data 79 */80export function editCycleTime(data) {81 // return request.put(`/test/v1/projects/${getProjectId()}/cycle`, data);82 return new Promise((resolve) => {83 setTimeout(() => {84 resolve();85 }, 300);86 });87}88export function exportCycle(cycleId) {89 return request.get(`/test/v1/projects/${getProjectId()}/cycle/case/download/excel/${cycleId}`);90}91export function getCyclesByVersionId(versionId) {92 return request.get(`/test/v1/projects/${getProjectId()}/cycle/get/cycles/all/in/version/${versionId}`);93}94export function getFoldersByCycleId(cycleId) {95 return request.get(`/test/v1/projects/${getProjectId()}/cycle/query/folder/cycleId/${cycleId}`);96}97/**98 *è·å导åºåå²99 *100 * @export101 * @returns102 */103export function getExportList() {104 return request.get(`/test/v1/projects/${getProjectId()}/test/fileload/history/cycle`);105}106export function assignBatch(userId, cycleId) {107 return request.put(`test/v1/projects/${getProjectId()}/cycle/batch/change/cycleCase/assignedTo/${userId}/in/cycle/${cycleId}`);...
knowledgebaseApi.js
Source:knowledgebaseApi.js
1import { getProjectId, request, getOrganizationId } from '../common/utils';2// è·å项ç®ç¥è¯åº3export const getProjectBaseList = () => request.get(`/knowledge/v1/projects/${getProjectId()}/knowledge_base/query/list`);4// è·åç»ç»ç¥è¯åº5export const getOrgBaseList = () => request.get(`/knowledge/v1/organizations/${getOrganizationId()}/knowledge_base/query/list`);6/**7 * 项ç®å±å建ç¥è¯åº8 */9export const createBase = (data) => request.post(`/knowledge/v1/projects/${getProjectId()}/knowledge_base/create`, data);10/**11 * ç»ç»å±å建ç¥è¯åº12 * @param {*} data13 */14export const createOrgBase = (data) => request.post(`/knowledge/v1/organizations/${getOrganizationId()}/knowledge_base/create`, data);15/**16 * ç»ç»å±è®¾ç½®ç¥è¯åº17 * @param {*} data18 */19export const editBase = (data) => request.put(`/knowledge/v1/projects/${getProjectId()}/knowledge_base/update`, data);20/**21 * ç»ç»å±è®¾ç½®ç¥è¯åº22 * @param {*} data23 */24export const editOrgBase = (data) => request.put(`/knowledge/v1/organizations/${getOrganizationId()}/knowledge_base/update`, data);25// å°é¡¹ç®ä¸çç¥è¯åºææ档移å¨å°åæ¶ç«26export const moveToBin = (id) => request.put(`/knowledge/v1/projects/${getProjectId()}/knowledge_base/remove_my/${id}`);27// å°ç»ç»ä¸çç¥è¯åºææ档移å¨å°åæ¶ç«28export const orgMoveToBin = (id) => request.put(`/knowledge/v1/organizations/${getOrganizationId()}/knowledge_base/remove_my/${id}`);29// å¤æ项ç®å±ææ¡£æå±ç¥è¯åºæ¯å¦åå¨30export const judgeBelongBaseIsExist = (docId) => request.get(`/knowledge/v1/projects/${getProjectId()}/work_space/belong_base_exist/${docId}`);31// å¤æç»ç»å±ææ¡£æå±ç¥è¯åºæ¯å¦åå¨32export const judgeOrgBelongBaseIsExist = (docId) => request.get(`/knowledge/v1/organizations/${getOrganizationId()}/work_space/belong_base_exist/${docId}`);33// æ¢å¤åæ¶ç«ä¸çç¥è¯åºæææ¡£34export const recoverFromBin = (id, type, baseId) => request.put(`/knowledge/v1/projects/${getProjectId()}/recycle/restore/${id}?type=${type}&baseId=${baseId || ''}`);35// æ¢å¤ç»ç»å±åæ¶ç«ä¸çç¥è¯åºæææ¡£36export const recoverOrgFromBin = (id, type, baseId) => request.put(`/knowledge/v1/organizations/${getOrganizationId()}/recycle/restore/${id}?type=${type}&baseId=${baseId || ''}`);37// å é¤åæ¶ç«çç¥è¯åºæææ¡£38export const deleteDocOrBase = (id, type) => request.delete(`/knowledge/v1/projects/${getProjectId()}/recycle/delete/${id}?type=${type}`);39// å é¤ç»ç»å±åæ¶ç«çç¥è¯åºæææ¡£40export const deleteOrgDocOrBase = (id, type) => request.delete(`/knowledge/v1/organizations/${getOrganizationId()}/recycle/delete/${id}?type=${type}`);41export const getOrgBinList = (data) => request.post(`/knowledge/v1/organizations/${getOrganizationId()}/recycle/page_by_options`, data);42// è·åææ¡£å
容43export const getPageInfo = (workSpaceId) => request.get(`/knowledge/v1/projects/${getProjectId()}/work_space/${workSpaceId}`);44// è·åç»ç»å±ææ¡£å
容...
index.js
Source:index.js
1import axios from '@/libs/api.request'2import { getProjectId } from '@/libs/util'3export const getAlarmList = (params) => {4 return axios.request({5 url: `project/${getProjectId()}/api/alarm/config/list`,6 method: 'get',7 params: {8 ...params9 }10 })11}12export const add = (params) => {13 return axios.request({14 url: `project/${getProjectId()}/api/alarm/config/add`,15 method: 'post',16 headers: { 'Content-Type': 'application/json' },17 data: {18 ...params19 }20 })21}22export const remove = (params) => {23 return axios.request({24 url: `project/${getProjectId()}/api/alarm/config/delete`,25 method: 'get',26 params: {27 ...params28 }29 })30}31export const update = (params) => {32 return axios.request({33 url: `project/${getProjectId()}/api/alarm/config/update`,34 method: 'post',35 headers: { 'Content-Type': 'application/json' },36 data: {37 ...params38 }39 })40}41export const getAlarmErrorNameList = () => {42 return axios.request({43 url: `project/${getProjectId()}/api/error/distribution/summary`,44 method: 'get'45 })46}47export const getAlarmLog = (params) => {48 return axios.request({49 url: `project/${getProjectId()}/api/alarm/log`,50 method: 'get',51 params52 })53}54export const getLineAlarmLog = (params) => {55 return axios.request({56 url: `project/${getProjectId()}/api/alarm/log/line`,57 method: 'get',58 params59 })...
Using AI Code Generation
1context('Actions', () => {2 beforeEach(() => {3 })4 it('.type() - type into a DOM element', () => {5 cy.get('.action-email')6 .type('
Using AI Code Generation
1describe('My First Test', function() {2 it('Gets, types and asserts', function() {3 cy.contains('type').click()4 cy.url().should('include', '/commands/actions')5 cy.get('.action-email')6 .type('
Using AI Code Generation
1describe('My First Test', () => {2 it('Gets, types and asserts', () => {3 cy.pause()4 cy.contains('type').click()5 cy.url().should('include', '/commands/actions')6 cy.get('.action-email')7 .type('fake@email')8 .should('have.value', 'fake@email')9 })10})11describe('My First Test', () => {12 it('Gets, types and asserts', () => {13 cy.pause()14 cy.contains('type').click()15 cy.url().should('include', '/commands/actions')16 cy.get('.action-email')17 .type('fake@email')18 .should('have.value', 'fake@email')19 cy.log(Cypress.config().projectId)20 })21})22describe('My First Test', () => {23 it('Gets, types and asserts', () => {24 cy.pause()25 cy.contains('type').click()26 cy.url().should('include', '/commands/actions')27 cy.get('.action-email')28 .type('
Using AI Code Generation
1describe('Cypress', () => {2 it('is working', () => {3 expect(true).to.equal(true)4 })5 it('getProjectId', () => {6 expect(Cypress.projectId).to.equal('h7v4xj')7 })8})9{10}11describe('Cypress', () => {12 it('is working', () => {13 expect(true).to.equal(true)14 })15 it('getProjectId', () => {16 expect(Cypress.projectId).to.equal('h7v4xj')17 })18})19### `Cypress.config()`20describe('Cypress', () => {21 it('is working', () => {22 expect(true).to.equal(true)23 })24 it('config', () => {25 cy.get('.home-list > :nth-child(1) > a').click()26 cy.contains('type').click()27 cy.url().should('include', '/commands/actions')28 cy.get('.action-email')29 .type('
Cypress is a renowned Javascript-based open-source, easy-to-use end-to-end testing framework primarily used for testing web applications. Cypress is a relatively new player in the automation testing space and has been gaining much traction lately, as evidenced by the number of Forks (2.7K) and Stars (42.1K) for the project. LambdaTest’s Cypress Tutorial covers step-by-step guides that will help you learn from the basics till you run automation tests on LambdaTest.
You can elevate your expertise with end-to-end testing using the Cypress automation framework and stay one step ahead in your career by earning a Cypress certification. Check out our Cypress 101 Certification.
Watch this 3 hours of complete tutorial to learn the basics of Cypress and various Cypress commands with the Cypress testing at LambdaTest.
Get 100 minutes of automation test minutes FREE!!