| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- * Get the search Type according to the current module and the current method.
- *
- * @access public
- * @return string
- */
- window.getGlobalSearchType = function()
- {
- if(vision == 'lite') return 'story';
- const appInfo = $.apps.getLastApp();
- if(!appInfo) return;
- const pageWindow = appInfo.iframe.contentWindow;
- if(pageWindow.globalSearchType)
- {
- if(typeof pageWindow.globalSearchType === 'function') return pageWindow.globalSearchType();
- return pageWindow.globalSearchType;
- }
- const moduleName = pageWindow.config.rawModule;
- const methodName = pageWindow.config.rawMethod;
- if(moduleName == 'product' && methodName == 'browse') return 'story';
- if(moduleName == 'my' || moduleName == 'user') return methodName;
- const projectMethod = 'task|story|bug|build';
- if(moduleName == 'project' && projectMethod.indexOf(methodName) != -1) return methodName;
- if(moduleName == 'execution' && projectMethod.indexOf(methodName) != -1) return methodName;
- if(!this.props.items.some(x => x.key === moduleName)) return 'bug';
- if(moduleName == 'search') return '';
- return moduleName;
- }
- function getSearchUrl(searchType, searchValue, callback)
- {
- if(typeof searchValue !== 'string') return;
- searchValue = searchValue.trim();
- if(!searchValue.length) return;
- let searchUrl = $.createLink('search', 'index');
- searchUrl += (searchUrl.indexOf('?') >= 0 ? '&' : '?') + 'words=' + encodeURIComponent(searchValue) + '&type=all';
- if(!searchType || searchType == 'all' || searchType == 'search' || /[^0-9]/.test(searchValue)) return callback(searchUrl);
- const types = searchType.split('-');
- const searchModule = types[0];
- const searchMethod = typeof(types[1]) == 'undefined' ? 'view' : types[1];
- searchUrl = $.createLink(searchModule, searchMethod, "id=" + searchValue);
- const assetType = ',story,issue,risk,opportunity,doc,';
- if(edition != 'max' || assetType.indexOf(',' + searchModule + ',') == -1) return callback(searchUrl);
- const link = $.createLink('index', 'ajaxGetViewMethod' , 'objectID=' + searchValue + '&objectType=' + searchModule);
- $.get(link, function(data)
- {
- if(data)
- {
- callback($.createLink('assetlib', data, "id=" + searchValue));
- }
- else
- {
- return callback(searchUrl);
- }
- });
- }
- window.handleGlobalSearch = function(type, search)
- {
- if(type == 'program') type = 'program-product';
- if(type == 'deploystep') type = 'deploy-viewstep';
- if(type == 'feedback' && vision != 'lite') type = 'feedback-adminView';
- getSearchUrl(type, search, searchUrl => openPage(searchUrl, null, {success: function(data)
- {
- if(data && typeof data === 'object' && !Array.isArray(data) && data.load && typeof data.load === 'object' && data.load.locate) data.load.locate = null;
- }}));
- };
|