You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

search.js 49 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722
  1. var token;
  2. if (isEmpty(token)) {
  3. var meta = $("meta[name=_uid]");
  4. if (!isEmpty(meta)) {
  5. token = meta.attr("content");
  6. }
  7. }
  8. var html = document.documentElement;
  9. var lang = html.attributes["lang"];
  10. var isZh = true;
  11. if (lang != null && lang.nodeValue == "en-US") {
  12. isZh = false;
  13. } else {
  14. }
  15. function isEmpty(str) {
  16. if (typeof str == "undefined" || str == null || str == "") {
  17. return true;
  18. }
  19. return false;
  20. }
  21. var itemType = {
  22. 1: "repository",
  23. 2: "issue",
  24. 3: "user",
  25. 4: "org",
  26. 5: "dataset",
  27. 6: "pr",
  28. };
  29. var sortBy = {
  30. 10: "default",
  31. 11: "updated_unix.keyword",
  32. 12: "num_watches",
  33. 13: "num_stars",
  34. 14: "num_forks",
  35. 20: "default",
  36. 21: "updated_unix.keyword",
  37. 30: "default",
  38. 31: "name.keyword",
  39. 32: "name.keyword",
  40. 33: "created_unix.keyword",
  41. 34: "created_unix.keyword",
  42. 40: "default",
  43. 41: "name.keyword",
  44. 42: "name.keyword",
  45. 43: "created_unix.keyword",
  46. 44: "created_unix.keyword",
  47. 50: "default",
  48. 51: "download_times",
  49. 60: "default",
  50. 61: "updated_unix.keyword",
  51. };
  52. var sortAscending = {
  53. 10: "false",
  54. 11: "false",
  55. 12: "false",
  56. 13: "false",
  57. 14: "false",
  58. 20: "false",
  59. 21: "false",
  60. 30: "false",
  61. 31: "true",
  62. 32: "false",
  63. 33: "false",
  64. 34: "true",
  65. 40: "false",
  66. 41: "true",
  67. 42: "false",
  68. 43: "false",
  69. 44: "true",
  70. 50: "false",
  71. 51: "false",
  72. 60: "false",
  73. 61: "false",
  74. };
  75. var currentPage = 1;
  76. var pageSize = 15;
  77. var currentSearchTableName = "repository";
  78. var currentSearchKeyword = "";
  79. var currentSearchSortBy = "";
  80. var currentSearchAscending = "false";
  81. var OnlySearchLabel = false;
  82. var startIndex = 1;
  83. var endIndex = 5;
  84. var totalPage = 1;
  85. var totalNum = 0;
  86. var privateTotal = 0;
  87. function initPageInfo() {
  88. currentPage = 1;
  89. startIndex = 1;
  90. endIndex = 5;
  91. }
  92. function searchItem(type, sortType) {
  93. if (OnlySearchLabel) {
  94. doSearchLabel(
  95. currentSearchTableName,
  96. currentSearchKeyword,
  97. sortBy[sortType],
  98. sortAscending[sortType]
  99. );
  100. } else {
  101. currentSearchKeyword = document.getElementById("keyword_input").value;
  102. if (!isEmpty(currentSearchKeyword)) {
  103. initPageInfo();
  104. currentSearchTableName = itemType[type];
  105. currentSearchSortBy = sortBy[sortType];
  106. currentSearchAscending = sortAscending[sortType];
  107. OnlySearchLabel = false;
  108. page(currentPage);
  109. } else {
  110. emptySearch();
  111. }
  112. }
  113. }
  114. function search() {
  115. currentSearchKeyword = document.getElementById("keyword_input").value;
  116. if (!isEmpty(currentSearchKeyword)) {
  117. currentSearchKeyword = currentSearchKeyword.trim();
  118. }
  119. if (!isEmpty(currentSearchKeyword)) {
  120. doSpcifySearch(
  121. currentSearchTableName,
  122. currentSearchKeyword,
  123. sortBy[10],
  124. "false"
  125. );
  126. } else {
  127. emptySearch();
  128. }
  129. }
  130. function emptySearch() {
  131. initDiv(false);
  132. initPageInfo();
  133. $("#searchForm").addClass("hiddenSearch");
  134. document.getElementById("find_id").innerHTML = getLabel(isZh, "search_empty");
  135. $("#find_title").html("");
  136. document.getElementById("sort_type").innerHTML = "";
  137. document.getElementById("child_search_item").innerHTML = "";
  138. document.getElementById("page_menu").innerHTML = "";
  139. $("#repo_total").text("");
  140. $("#pr_total").text("");
  141. $("#issue_total").text("");
  142. $("#dataset_total").text("");
  143. $("#user_total").text("");
  144. $("#org_total").text("");
  145. setActivate(null);
  146. }
  147. function initDiv(isSearchLabel = false) {
  148. if (isSearchLabel) {
  149. document.getElementById("search_div").style.display = "none";
  150. document.getElementById("search_label_div").style.display = "block";
  151. document.getElementById("dataset_item").style.display = "none";
  152. document.getElementById("issue_item").style.display = "none";
  153. document.getElementById("pr_item").style.display = "none";
  154. document.getElementById("user_item").style.display = "none";
  155. document.getElementById("org_item").style.display = "none";
  156. document.getElementById("find_id").innerHTML = "";
  157. } else {
  158. document.getElementById("search_div").style.display = "block";
  159. document.getElementById("search_label_div").style.display = "none";
  160. document.getElementById("dataset_item").style.display = "block";
  161. document.getElementById("issue_item").style.display = "block";
  162. document.getElementById("pr_item").style.display = "block";
  163. document.getElementById("user_item").style.display = "block";
  164. document.getElementById("org_item").style.display = "block";
  165. document.getElementById("find_id").innerHTML = getLabel(
  166. isZh,
  167. "search_finded"
  168. );
  169. }
  170. }
  171. function doSpcifySearch(tableName, keyword, sortBy = "", ascending = "false") {
  172. initDiv(false);
  173. $("#searchForm").addClass("hiddenSearch");
  174. document.getElementById("find_id").innerHTML = getLabel(
  175. isZh,
  176. "search_finded"
  177. );
  178. currentSearchKeyword = keyword;
  179. initPageInfo();
  180. currentSearchTableName = tableName;
  181. currentSearchSortBy = sortBy;
  182. currentSearchAscending = ascending;
  183. OnlySearchLabel = false;
  184. page(currentPage);
  185. if (currentSearchTableName != "repository") {
  186. doSearch("repository", currentSearchKeyword, 1, pageSize, true, "", false);
  187. }
  188. if (currentSearchTableName != "issue") {
  189. doSearch("issue", currentSearchKeyword, 1, pageSize, true, "", false);
  190. }
  191. if (currentSearchTableName != "user") {
  192. doSearch("user", currentSearchKeyword, 1, pageSize, true, "", false);
  193. }
  194. if (currentSearchTableName != "org") {
  195. doSearch("org", currentSearchKeyword, 1, pageSize, true, "", false);
  196. }
  197. if (currentSearchTableName != "dataset") {
  198. doSearch("dataset", currentSearchKeyword, 1, pageSize, true, "", false);
  199. }
  200. if (currentSearchTableName != "pr") {
  201. doSearch("pr", currentSearchKeyword, 1, pageSize, true, "", false);
  202. }
  203. }
  204. function doSearchLabel(tableName, keyword, sortBy = "", ascending = "false") {
  205. initDiv(true);
  206. //document.getElementById("search_div").style.display="none";
  207. //document.getElementById("search_label_div").style.display="block";
  208. document.getElementById("search_label_div").innerHTML =
  209. '<p class="searchlabel">#' + keyword + "</p>";
  210. currentSearchKeyword = keyword;
  211. initPageInfo();
  212. currentSearchTableName = tableName;
  213. currentSearchSortBy = sortBy;
  214. currentSearchAscending = ascending;
  215. OnlySearchLabel = true;
  216. page(currentPage);
  217. }
  218. function searchLabel(tableName, keyword, sortBy = "", ascending = "false") {
  219. sessionStorage.setItem("keyword", keyword);
  220. sessionStorage.setItem("tableName", tableName);
  221. sessionStorage.setItem("searchLabel", true);
  222. sessionStorage.setItem("sortBy", sortBy);
  223. sessionStorage.setItem("ascending", ascending);
  224. window.open("/all/search/");
  225. }
  226. function doSearch(
  227. tableName,
  228. keyword,
  229. page,
  230. pageSize = 15,
  231. onlyReturnNum = true,
  232. sortBy = "",
  233. OnlySearchLabel = false
  234. ) {
  235. var language = "zh-CN";
  236. if (!isZh) {
  237. language = "en-US";
  238. }
  239. $.ajax({
  240. type: "GET",
  241. url: "/all/dosearch/",
  242. headers: {
  243. authorization: token,
  244. },
  245. dataType: "json",
  246. data: {
  247. TableName: tableName,
  248. Key: keyword,
  249. Page: page,
  250. PageSize: pageSize,
  251. OnlyReturnNum: onlyReturnNum,
  252. SortBy: sortBy,
  253. OnlySearchLabel: OnlySearchLabel,
  254. Ascending: currentSearchAscending,
  255. WebTotal: totalNum,
  256. PrivateTotal: privateTotal,
  257. language: language,
  258. },
  259. async: true,
  260. success: function (json) {
  261. displayResult(tableName, page, json, onlyReturnNum, keyword);
  262. },
  263. error: function (response) {},
  264. });
  265. }
  266. function displayResult(tableName, page, jsonResult, onlyReturnNum, keyword) {
  267. if (tableName == "repository") {
  268. displayRepoResult(page, jsonResult, onlyReturnNum, keyword);
  269. } else if (tableName == "issue") {
  270. displayIssueResult(page, jsonResult, onlyReturnNum, keyword);
  271. } else if (tableName == "user") {
  272. displayUserResult(page, jsonResult, onlyReturnNum, keyword);
  273. } else if (tableName == "org") {
  274. displayOrgResult(page, jsonResult, onlyReturnNum, keyword);
  275. } else if (tableName == "dataset") {
  276. displayDataSetResult(page, jsonResult, onlyReturnNum, keyword);
  277. } else if (tableName == "pr") {
  278. displayPrResult(page, jsonResult, onlyReturnNum, keyword);
  279. }
  280. if (!onlyReturnNum) {
  281. totalPage = Math.ceil(jsonResult.Total / pageSize);
  282. totalNum = jsonResult.Total;
  283. privateTotal = jsonResult.PrivateTotal;
  284. setPage(page);
  285. }
  286. }
  287. function displayPrResult(page, jsonResult, onlyReturnNum, keyword) {
  288. var data = jsonResult.Result;
  289. var total = jsonResult.Total;
  290. $("#pr_total").text(total);
  291. if (!onlyReturnNum) {
  292. setActivate("pr_item");
  293. //$('#keyword_desc').text(keyword);
  294. //$('#obj_desc').text(getLabel(isZh,"search_pr"));
  295. //$('#child_total').text(total);
  296. $("#find_title").html(
  297. getLabel(isZh, "find_title")
  298. .replace("{keyword}", keyword)
  299. .replace("{tablename}", getLabel(isZh, "search_pr"))
  300. .replace("{total}", total)
  301. );
  302. setIssueOrPrInnerHtml(data, "pulls");
  303. }
  304. }
  305. var categoryDesc = {
  306. computer_vision: "计算机视觉",
  307. natural_language_processing: "自然语言处理",
  308. speech_processing: "语音处理",
  309. computer_vision_natural_language_processing: "计算机视觉、自然语言处理",
  310. };
  311. var categoryENDesc = {
  312. computer_vision: "computer vision",
  313. natural_language_processing: "natural language processing",
  314. speech_processing: "speech processing",
  315. computer_vision_natural_language_processing:
  316. "computer vision and natural language processing",
  317. };
  318. var taskDesc = {
  319. machine_translation: "机器翻译",
  320. question_answering_system: "问答系统",
  321. information_retrieval: "信息检索",
  322. knowledge_graph: "知识图谱",
  323. text_annotation: "文本标注",
  324. text_categorization: "文本分类",
  325. emotion_analysis: "情感分析",
  326. language_modeling: "语言建模",
  327. speech_recognition: "语音识别",
  328. automatic_digest: "自动文摘",
  329. information_extraction: "信息抽取",
  330. description_generation: "说明生成",
  331. image_classification: "图像分类",
  332. face_recognition: "人脸识别",
  333. image_search: "图像搜索",
  334. target_detection: "目标检测",
  335. image_description_generation: "图像描述生成",
  336. vehicle_license_plate_recognition: "车辆车牌识别",
  337. medical_image_analysis: "医学图像分析",
  338. unmanned: "无人驾驶",
  339. unmanned_security: "无人安防",
  340. drone: "无人机",
  341. vr_ar: "VR/AR",
  342. "2_d_vision": "2-D视觉",
  343. "2_5_d_vision": "2.5-D视觉",
  344. "3_d_reconstruction": "3D重构",
  345. image_processing: "图像处理",
  346. video_processing: "视频处理",
  347. visual_input_system: "视觉输入系统",
  348. speech_coding: "语音编码",
  349. speech_enhancement: "语音增强",
  350. speech_recognition: "语音识别",
  351. speech_synthesis: "语音合成",
  352. };
  353. var taskENDesc = {
  354. machine_translation: "machine translation",
  355. question_answering_system: "question answering system",
  356. information_retrieval: "information retrieval",
  357. knowledge_graph: "knowledge graph",
  358. text_annotation: "text annotation",
  359. text_categorization: "text categorization",
  360. emotion_analysis: "emotion analysis",
  361. language_modeling: "language modeling",
  362. speech_recognition: "speech recognition",
  363. automatic_digest: "automatic digest",
  364. information_extraction: "information extraction",
  365. description_generation: "description generation",
  366. image_classification: "image classification",
  367. face_recognition: "face recognition",
  368. image_search: "image search",
  369. target_detection: "target detection",
  370. image_description_generation: "image description generation",
  371. vehicle_license_plate_recognition: "vehicle license plate recognition",
  372. medical_image_analysis: "medical image analysis",
  373. unmanned: "unmanned",
  374. unmanned_security: "unmanned security",
  375. drone: "drone",
  376. vr_ar: "VR/AR",
  377. "2_d_vision": "2.D vision",
  378. "2.5_d_vision": "2.5D vision",
  379. "3_d_reconstruction": "3Dreconstruction",
  380. image_processing: "image processing",
  381. video_processing: "video processing",
  382. visual_input_system: "visual input system",
  383. speech_coding: "speech coding",
  384. speech_enhancement: "speech enhancement",
  385. speech_recognition: "speech recognition",
  386. speech_synthesis: "speech synthesis",
  387. };
  388. function getCategoryDesc(isZh, key) {
  389. var re = key;
  390. if (isZh) {
  391. re = categoryDesc[key];
  392. } else {
  393. re = categoryENDesc[key];
  394. }
  395. if (isEmpty(re)) {
  396. return key;
  397. }
  398. return re;
  399. }
  400. function getTaskDesc(isZh, key) {
  401. var re = key;
  402. if (isZh) {
  403. re = taskDesc[key];
  404. } else {
  405. re = taskENDesc[key];
  406. }
  407. if (isEmpty(re)) {
  408. return key;
  409. }
  410. return re;
  411. }
  412. function getActiveItem(sort_type) {
  413. if (
  414. currentSearchSortBy == sortBy[sort_type] &&
  415. currentSearchAscending == sortAscending[sort_type]
  416. ) {
  417. return "active ";
  418. } else {
  419. return "";
  420. }
  421. }
  422. function displayDataSetResult(page, jsonResult, onlyReturnNum, keyword) {
  423. var data = jsonResult.Result;
  424. var total = jsonResult.Total;
  425. $("#dataset_total").text(total);
  426. if (!onlyReturnNum) {
  427. setActivate("dataset_item");
  428. //$('#keyword_desc').text(keyword);
  429. //$('#obj_desc').text(getLabel(isZh,"search_dataset"));
  430. //$('#child_total').text(total);
  431. $("#find_title").html(
  432. getLabel(isZh, "find_title")
  433. .replace("{keyword}", keyword)
  434. .replace("{tablename}", getLabel(isZh, "search_dataset"))
  435. .replace("{total}", total)
  436. );
  437. var sortHtml = "";
  438. sortHtml +=
  439. '<a class="' +
  440. getActiveItem(50) +
  441. 'item" href="javascript:searchItem(5,50);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  442. getLabel(isZh, "search_matched") +
  443. "</a>";
  444. sortHtml +=
  445. '<a class="' +
  446. getActiveItem(51) +
  447. 'item" href="javascript:searchItem(5,51);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  448. getLabel(isZh, "search_matched_download") +
  449. "</a>";
  450. document.getElementById("sort_type").innerHTML = sortHtml;
  451. var html = "";
  452. var currentTime = new Date().getTime();
  453. for (var i = 0; i < data.length; i++) {
  454. var recordMap = data[i];
  455. html += '<div class="item">';
  456. html += ' <div class="content">';
  457. html += ' <div class="ui right metas">';
  458. if (!isEmpty(recordMap["category"])) {
  459. html +=
  460. ' <span class="text grey"><svg class="svg octicon-tasklist" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-tasklist" /></svg> ' +
  461. getCategoryDesc(isZh, recordMap["category"]) +
  462. "</span>";
  463. }
  464. if (!isEmpty(recordMap["task"])) {
  465. html +=
  466. ' <span class="text grey"><svg class="svg octicon-tag" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-tag" /></svg>' +
  467. getTaskDesc(isZh, recordMap["task"]) +
  468. "</span>";
  469. }
  470. html +=
  471. ' <span class="text grey"><i class="ri-fire-line"></i> ' +
  472. recordMap["download_times"] +
  473. "</span> ";
  474. html += " </div>";
  475. html += ' <div class="ui header">';
  476. html +=
  477. ' <a class="name" href="/' +
  478. recordMap["repoUrl"] +
  479. '/datasets" target="_blank">' +
  480. recordMap["title"] +
  481. "</a>";
  482. html +=
  483. ' <span class="middle"><svg class="svg octicon-repo-clone" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-repo-clone"></use></svg></span>';
  484. html += " </div>";
  485. html += ' <div class="description">';
  486. html +=
  487. ' <p class="has-emoji"> ' + recordMap["description"] + "</p>";
  488. if (!isEmpty(recordMap["file_name"])) {
  489. html +=
  490. ' <p class="has-emoji"> ' + recordMap["file_name"] + "</p>";
  491. }
  492. html += ' <p class="time">';
  493. html +=
  494. ' <span class="am-ml-10"></span> ' +
  495. getLabel(isZh, "search_lasted_update") +
  496. " " +
  497. recordMap["updated_html"];
  498. html += " </p>";
  499. html += " </div>";
  500. html += " </div>";
  501. html += "</div>";
  502. }
  503. document.getElementById("child_search_item").innerHTML = html;
  504. }
  505. }
  506. function displayOrgResult(page, jsonResult, onlyReturnNum, keyword) {
  507. var data = jsonResult.Result;
  508. var total = jsonResult.Total;
  509. $("#org_total").text(total);
  510. if (!onlyReturnNum) {
  511. setActivate("org_item");
  512. //$('#keyword_desc').text(keyword);
  513. //$('#obj_desc').text(getLabel(isZh,"search_org"));
  514. //$('#child_total').text(total);
  515. $("#find_title").html(
  516. getLabel(isZh, "find_title")
  517. .replace("{keyword}", keyword)
  518. .replace("{tablename}", getLabel(isZh, "search_org"))
  519. .replace("{total}", total)
  520. );
  521. var sortHtml = "";
  522. sortHtml +=
  523. '<a class="' +
  524. getActiveItem(40) +
  525. 'item" href="javascript:searchItem(4,40);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  526. getLabel(isZh, "search_matched") +
  527. "</a>";
  528. sortHtml +=
  529. '<a class="' +
  530. getActiveItem(41) +
  531. 'item" href="javascript:searchItem(4,41);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  532. getLabel(isZh, "search_letter_asc") +
  533. "</a>";
  534. sortHtml +=
  535. '<a class="' +
  536. getActiveItem(42) +
  537. 'item" href="javascript:searchItem(4,42);" tabindex="-1" role="menuitem" id="menuitem_2">' +
  538. getLabel(isZh, "search_letter_desc") +
  539. "</a>";
  540. sortHtml +=
  541. '<a class="' +
  542. getActiveItem(43) +
  543. 'item" href="javascript:searchItem(4,43);" tabindex="-1" role="menuitem" id="menuitem_2">' +
  544. getLabel(isZh, "search_lasted_create") +
  545. "</a>";
  546. sortHtml +=
  547. '<a class="' +
  548. getActiveItem(44) +
  549. 'item" href="javascript:searchItem(4,44);" tabindex="-1" role="menuitem" id="menuitem_2">' +
  550. getLabel(isZh, "search_early_create") +
  551. "</a>";
  552. document.getElementById("sort_type").innerHTML = sortHtml;
  553. var html = "";
  554. var currentTime = new Date().getTime();
  555. for (var i = 0; i < data.length; i++) {
  556. var recordMap = data[i];
  557. html += '<div class="item members">';
  558. html +=
  559. '<img class="ui avatar image" src="' + recordMap["avatar"] + '"></img>';
  560. html += ' <div class="content">';
  561. html += ' <div class="ui header">';
  562. html +=
  563. ' <a class="name" href="/' +
  564. recordMap["real_name"] +
  565. '" target="_blank">' +
  566. recordMap["name"] +
  567. "&nbsp;&nbsp;" +
  568. recordMap["full_name"] +
  569. "</a>";
  570. html += " </div>";
  571. html += ' <div class="description">';
  572. html +=
  573. ' <p class="has-emoji"> ' + recordMap["description"] + "</p>";
  574. html += ' <p class="has-emoji">';
  575. if (!isEmpty(recordMap["location"]) && recordMap["location"] != "null") {
  576. html +=
  577. ' <i class="ri-map-pin-2-line"></i> ' +
  578. recordMap["location"];
  579. }
  580. html += ' <span class="am-ml-10"></span>';
  581. if (!isEmpty(recordMap["website"]) && recordMap["website"] != "null") {
  582. html +=
  583. ' <i class="ri-links-line"></i>' +
  584. '<a href="' +
  585. recordMap["website"] +
  586. '" target="_blank">' +
  587. recordMap["website"] +
  588. "</a>";
  589. }
  590. html +=
  591. ' <i class="ri-time-line am-ml-10"></i> ' +
  592. getLabel(isZh, "search_add_by") +
  593. " ";
  594. html += recordMap["add_time"];
  595. html += " </p>";
  596. html += " </div>";
  597. html += " </div>";
  598. html += "</div>";
  599. }
  600. document.getElementById("child_search_item").innerHTML = html;
  601. }
  602. }
  603. var monthDisplay = new Array(
  604. "Jan",
  605. "Feb",
  606. "Mar",
  607. "Apr",
  608. "May",
  609. "Jun",
  610. "Jul",
  611. "Aug",
  612. "Spt",
  613. "Oct",
  614. "Nov",
  615. "Dec"
  616. );
  617. function displayUserResult(page, jsonResult, onlyReturnNum, keyword) {
  618. var data = jsonResult.Result;
  619. var total = jsonResult.Total;
  620. $("#user_total").text(total);
  621. if (!onlyReturnNum) {
  622. setActivate("user_item");
  623. //$('#keyword_desc').text(keyword);
  624. //$('#obj_desc').text(getLabel(isZh,"search_user"));
  625. //$('#child_total').text(total);
  626. $("#find_title").html(
  627. getLabel(isZh, "find_title")
  628. .replace("{keyword}", keyword)
  629. .replace("{tablename}", getLabel(isZh, "search_user"))
  630. .replace("{total}", total)
  631. );
  632. var sortHtml = ""; //equal user sort by
  633. sortHtml +=
  634. '<a class="' +
  635. getActiveItem(30) +
  636. 'item" href="javascript:searchItem(3,30);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  637. getLabel(isZh, "search_matched") +
  638. "</a>";
  639. sortHtml +=
  640. '<a class="' +
  641. getActiveItem(31) +
  642. 'item" href="javascript:searchItem(3,31);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  643. getLabel(isZh, "search_letter_asc") +
  644. "</a>";
  645. sortHtml +=
  646. '<a class="' +
  647. getActiveItem(32) +
  648. 'item" href="javascript:searchItem(3,32);" tabindex="-1" role="menuitem" id="menuitem_2">' +
  649. getLabel(isZh, "search_letter_desc") +
  650. "</a>";
  651. sortHtml +=
  652. '<a class="' +
  653. getActiveItem(33) +
  654. 'item" href="javascript:searchItem(3,33);" tabindex="-1" role="menuitem" id="menuitem_2">' +
  655. getLabel(isZh, "search_lasted_create") +
  656. "</a>";
  657. sortHtml +=
  658. '<a class="' +
  659. getActiveItem(34) +
  660. 'item" href="javascript:searchItem(3,34);" tabindex="-1" role="menuitem" id="menuitem_2">' +
  661. getLabel(isZh, "search_early_create") +
  662. "</a>";
  663. document.getElementById("sort_type").innerHTML = sortHtml;
  664. var html = "";
  665. var currentTime = new Date().getTime();
  666. for (var i = 0; i < data.length; i++) {
  667. var recordMap = data[i];
  668. html += '<div class="item members">';
  669. html +=
  670. '<img class="ui avatar image" src="' + recordMap["avatar"] + '"></img>';
  671. html += ' <div class="content">';
  672. html += ' <div class="ui header">';
  673. html +=
  674. ' <a class="name" href="/' +
  675. recordMap["real_name"] +
  676. '" target="_blank">' +
  677. recordMap["name"] +
  678. "&nbsp;&nbsp;" +
  679. recordMap["full_name"] +
  680. "</a>";
  681. html += " </div>";
  682. html += ' <div class="description">';
  683. html +=
  684. ' <p class="has-emoji"> ' + recordMap["description"] + "</p>";
  685. html += ' <p class="has-emoji">';
  686. if (!isEmpty(recordMap["email"]) && recordMap["email"] != "null") {
  687. html +=
  688. ' <i class="ri-mail-line"></i>&nbsp;<a href="mailto:' +
  689. recordMap["email"] +
  690. '" rel="nofollow">' +
  691. recordMap["email"] +
  692. "</a>";
  693. }
  694. html +=
  695. ' <i class="ri-time-line am-ml-10"></i> ' +
  696. getLabel(isZh, "search_add_by") +
  697. " ";
  698. html += recordMap["add_time"];
  699. html += " </p>";
  700. html += " </div>";
  701. html += " </div>";
  702. html += "</div>";
  703. }
  704. document.getElementById("child_search_item").innerHTML = html;
  705. }
  706. }
  707. function setIssueOrPrInnerHtml(data, path) {
  708. var sortHtml = "";
  709. if (path == "issues") {
  710. sortHtml +=
  711. '<a class="' +
  712. getActiveItem(20) +
  713. 'item" href="javascript:searchItem(2,20);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  714. getLabel(isZh, "search_matched") +
  715. "</a>";
  716. sortHtml +=
  717. '<a class="' +
  718. getActiveItem(21) +
  719. 'item" href="javascript:searchItem(2,21);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  720. getLabel(isZh, "search_lasted") +
  721. "</a>";
  722. } else {
  723. sortHtml +=
  724. '<a class="' +
  725. getActiveItem(60) +
  726. 'item" href="javascript:searchItem(6,60);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  727. getLabel(isZh, "search_matched") +
  728. "</a>";
  729. sortHtml +=
  730. '<a class="' +
  731. getActiveItem(61) +
  732. 'item" href="javascript:searchItem(6,61);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  733. getLabel(isZh, "search_lasted") +
  734. "</a>";
  735. }
  736. document.getElementById("sort_type").innerHTML = sortHtml;
  737. var html = "";
  738. var currentTime = new Date().getTime();
  739. for (var i = 0; i < data.length; i++) {
  740. var recordMap = data[i];
  741. html += '<div class="item">';
  742. html += ' <div class="content">';
  743. html += ' <div class="ui header">';
  744. html +=
  745. ' <a class="name" href="/' +
  746. recordMap["repoUrl"] +
  747. "/" +
  748. path +
  749. "/" +
  750. recordMap["index"] +
  751. '" target="_blank">' +
  752. recordMap["name"] +
  753. "</a>";
  754. html += " </div>";
  755. html += ' <div class="description">';
  756. html += ' <p class="has-emoji"> ' + recordMap["content"] + "</p>";
  757. html += ' <p class="time">';
  758. html += ' <i class="ri-code-box-line"></i>';
  759. html +=
  760. ' <a class="am-text grey" href="/' +
  761. recordMap["repoUrl"] +
  762. "/" +
  763. path +
  764. "/" +
  765. recordMap["index"] +
  766. '" target="_blank"> ' +
  767. addBlank(recordMap["repoUrl"]) +
  768. " #" +
  769. recordMap["index"] +
  770. "</a>&nbsp;&nbsp;&nbsp;&nbsp;";
  771. html += ' <i class="ri-information-line am-ml-10"></i>&nbsp;';
  772. if (
  773. recordMap["is_closed"] != null &&
  774. (!recordMap["is_closed"] || recordMap["is_closed"] == "f")
  775. ) {
  776. html += getLabel(isZh, "search_open");
  777. } else {
  778. html += getLabel(isZh, "search_closed");
  779. }
  780. html +=
  781. ' &nbsp;&nbsp;&nbsp;&nbsp;<i class="ri-message-2-line am-ml-10"></i>&nbsp;' +
  782. recordMap["num_comments"];
  783. html +=
  784. ' <span class="am-ml-10">&nbsp;&nbsp;</span>&nbsp;&nbsp;' +
  785. getLabel(isZh, "search_lasted_update") +
  786. " " +
  787. recordMap["updated_html"];
  788. html += " </p>";
  789. html += " </div>";
  790. html += " </div>";
  791. html += "</div>";
  792. }
  793. document.getElementById("child_search_item").innerHTML = html;
  794. }
  795. function addBlank(url) {
  796. if (url == null) {
  797. return url;
  798. }
  799. var tmps = url.split("/");
  800. if (tmps.length == 2) {
  801. return tmps[0] + " / " + tmps[1];
  802. }
  803. return url;
  804. }
  805. function displayIssueResult(page, jsonResult, onlyReturnNum, keyword) {
  806. var data = jsonResult.Result;
  807. var total = jsonResult.Total;
  808. $("#issue_total").text(total);
  809. if (!onlyReturnNum) {
  810. setActivate("issue_item");
  811. //$('#keyword_desc').text(keyword);
  812. //$('#obj_desc').text(getLabel(isZh,"search_issue"));
  813. //$('#child_total').text(total);
  814. $("#find_title").html(
  815. getLabel(isZh, "find_title")
  816. .replace("{keyword}", keyword)
  817. .replace("{tablename}", getLabel(isZh, "search_issue"))
  818. .replace("{total}", total)
  819. );
  820. setIssueOrPrInnerHtml(data, "issues");
  821. }
  822. }
  823. function setActivate(name) {
  824. $("#repo_item").removeClass("active");
  825. $("#user_item").removeClass("active");
  826. $("#issue_item").removeClass("active");
  827. $("#dataset_item").removeClass("active");
  828. $("#org_item").removeClass("active");
  829. $("#pr_item").removeClass("active");
  830. if (name == null) {
  831. return;
  832. }
  833. var tmp = "#" + name;
  834. $(tmp).addClass("active");
  835. }
  836. function LetterAvatar(name, size, color) {
  837. name = name || "";
  838. size = size || 60;
  839. var colours = [
  840. "#1abc9c",
  841. "#2ecc71",
  842. "#3498db",
  843. "#9b59b6",
  844. "#34495e",
  845. "#16a085",
  846. "#27ae60",
  847. "#2980b9",
  848. "#8e44ad",
  849. "#2c3e50",
  850. "#f1c40f",
  851. "#e67e22",
  852. "#e74c3c",
  853. "#00bcd4",
  854. "#95a5a6",
  855. "#f39c12",
  856. "#d35400",
  857. "#c0392b",
  858. "#bdc3c7",
  859. "#7f8c8d",
  860. ],
  861. nameSplit = String(name).split(" "),
  862. initials,
  863. charIndex,
  864. colourIndex,
  865. canvas,
  866. context,
  867. dataURI;
  868. if (nameSplit.length == 1) {
  869. initials = nameSplit[0] ? nameSplit[0].charAt(0) : "?";
  870. } else {
  871. initials = nameSplit[0].charAt(0) + nameSplit[1].charAt(0);
  872. }
  873. if (w.devicePixelRatio) {
  874. size = size * w.devicePixelRatio;
  875. }
  876. charIndex = (initials == "?" ? 72 : initials.charCodeAt(0)) - 64;
  877. colourIndex = charIndex % 20;
  878. canvas = d.createElement("canvas");
  879. canvas.width = size;
  880. canvas.height = size;
  881. context = canvas.getContext("2d");
  882. context.fillStyle = color ? color : colours[colourIndex - 1];
  883. context.fillRect(0, 0, canvas.width, canvas.height);
  884. context.font = Math.round(canvas.width / 2) + "px 'Microsoft Yahei'";
  885. context.textAlign = "center";
  886. context.fillStyle = "#FFF";
  887. context.fillText(initials, size / 2, size / 1.5);
  888. dataURI = canvas.toDataURL();
  889. canvas = null;
  890. return dataURI;
  891. }
  892. LetterAvatar.transform = function () {
  893. Array.prototype.forEach.call(
  894. d.querySelectorAll("img[avatar]"),
  895. function (img, name, color) {
  896. name = img.getAttribute("avatar");
  897. color = img.getAttribute("color");
  898. img.src = LetterAvatar(name, img.getAttribute("width"), color);
  899. img.removeAttribute("avatar");
  900. img.setAttribute("alt", name);
  901. }
  902. );
  903. };
  904. function displayRepoResult(page, jsonResult, onlyReturnNum, keyword) {
  905. var data = jsonResult.Result;
  906. var total = jsonResult.Total;
  907. $("#repo_total").text(total);
  908. if (!onlyReturnNum) {
  909. setActivate("repo_item");
  910. // $('#keyword_desc').text(keyword);
  911. //$('#obj_desc').text(getLabel(isZh,"search_repo"));
  912. //$('#child_total').text(total);
  913. $("#find_title").html(
  914. getLabel(isZh, "find_title")
  915. .replace("{keyword}", keyword)
  916. .replace("{tablename}", getLabel(isZh, "search_repo"))
  917. .replace("{total}", total)
  918. );
  919. var sortHtml = "";
  920. sortHtml +=
  921. '<a class="' +
  922. getActiveItem(10) +
  923. 'item" href="javascript:searchItem(1,10);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  924. getLabel(isZh, "search_matched") +
  925. "</a>";
  926. sortHtml +=
  927. '<a class="' +
  928. getActiveItem(11) +
  929. 'item" href="javascript:searchItem(1,11);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  930. getLabel(isZh, "search_lasted") +
  931. "</a>";
  932. sortHtml +=
  933. '<a class="' +
  934. getActiveItem(12) +
  935. 'item" href="javascript:searchItem(1,12);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  936. getLabel(isZh, "search_watched") +
  937. "</a>";
  938. sortHtml +=
  939. '<a class="' +
  940. getActiveItem(13) +
  941. 'item" href="javascript:searchItem(1,13);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  942. getLabel(isZh, "search_star") +
  943. "</a>";
  944. sortHtml +=
  945. '<a class="' +
  946. getActiveItem(14) +
  947. 'item" href="javascript:searchItem(1,14);" tabindex="-1" role="menuitem" id="menuitem_1">' +
  948. getLabel(isZh, "search_fork") +
  949. "</a>";
  950. document.getElementById("sort_type").innerHTML = sortHtml;
  951. var html = "";
  952. var currentTime = new Date().getTime();
  953. for (var i = 0; i < data.length; i++) {
  954. var recordMap = data[i];
  955. html += '<div class="item">';
  956. if (recordMap["avatar"]) {
  957. html += `<img class="ui avatar image" style="width:28px;height:28px" src="${recordMap["avatar"]}">`;
  958. } else {
  959. html += `<img class="ui avatar image" style="width:28px;height:28px" avatar="${recordMap["owner_name"]}">`;
  960. }
  961. html += ' <div class="content">';
  962. html += ' <div class="ui header">';
  963. html +=
  964. ' <a class="name" href="/' +
  965. recordMap["owner_name"] +
  966. "/" +
  967. recordMap["real_name"] +
  968. '" target="_blank"> <span>' +
  969. recordMap["owner_name"] +
  970. "</span> <span>/</span> <strong>" +
  971. recordMap["alias"] +
  972. "</strong></a>";
  973. if (recordMap["is_private"]) {
  974. html +=
  975. ' <span class="middle text gold"><svg class="svg octicon-lock" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-lock" /></svg></span>';
  976. }
  977. html += " </div>";
  978. html += ' <div class="description">';
  979. html +=
  980. ' <p class="has-emoji"> ' + recordMap["description"] + "</p>";
  981. html += ' <div class="ui tags">';
  982. if (!isEmpty(recordMap["topics"]) && recordMap["topics"] != "null") {
  983. for (var j = 0; j < recordMap["topics"].length; j++) {
  984. //function searchLabel(tableName,keyword,sortBy="",ascending=false)
  985. html +=
  986. " <a href=\"javascript:searchLabel('repository','" +
  987. recordMap["topics"][j] +
  988. "','updated_unix.keyword',false);\" ><div class=\"ui small label topic\">" +
  989. recordMap["hightTopics"][j] +
  990. "</div></a>";
  991. }
  992. }
  993. html += " </div>";
  994. html += ' <p class="time">';
  995. html +=
  996. ' <i class="icon fa-eye outline"></i>&nbsp;' +
  997. recordMap["num_watches"] +
  998. '&nbsp;&nbsp;<i class="icon star outline"></i>&nbsp;' +
  999. recordMap["num_stars"] +
  1000. '&nbsp;&nbsp;<i class="icon code branch"></i>&nbsp;' +
  1001. recordMap["num_forks"] +
  1002. "&nbsp;&nbsp;";
  1003. html +=
  1004. "&nbsp;&nbsp;&nbsp;&nbsp;" +
  1005. getLabel(isZh, "search_lasted_update") +
  1006. " " +
  1007. recordMap["updated_html"];
  1008. if (!isEmpty(recordMap["lang"])) {
  1009. var lang = recordMap["lang"];
  1010. var tmpLang = recordMap["lang"].split(",");
  1011. if (tmpLang.length > 0) {
  1012. lang = tmpLang[0];
  1013. }
  1014. var backColor = "#3572A5";
  1015. if (LanguagesColor[lang] != null) {
  1016. backColor = LanguagesColor[lang];
  1017. }
  1018. html +=
  1019. ' <span class="text grey am-ml-10"><i class="color-icon" style="background-color: ' +
  1020. backColor +
  1021. '"></i>&nbsp;' +
  1022. lang +
  1023. "</span>";
  1024. }
  1025. html += " </p>";
  1026. html += " </div>";
  1027. html += " </div>";
  1028. html += "</div>";
  1029. }
  1030. document.getElementById("child_search_item").innerHTML = html;
  1031. LetterAvatar.transform();
  1032. }
  1033. }
  1034. function getTime(UpdatedUnix, currentTime) {
  1035. UpdatedUnix = UpdatedUnix;
  1036. currentTime = currentTime / 1000;
  1037. var timeEscSecond = currentTime - UpdatedUnix;
  1038. if (timeEscSecond < 0) {
  1039. timeEscSecond = 1;
  1040. }
  1041. var hours = Math.floor(timeEscSecond / 3600);
  1042. //计算相差分钟数
  1043. var leave2 = Math.floor(timeEscSecond % 3600); //计算小时数后剩余的秒数
  1044. var minutes = Math.floor(leave2 / 60); //计算相差分钟数
  1045. var leave3 = Math.floor(leave2 % 60); //计算分钟数后剩余的秒数
  1046. var seconds = leave3;
  1047. if (hours == 0 && minutes == 0) {
  1048. return seconds + getRepoOrOrg(6, isZh);
  1049. } else {
  1050. if (hours > 0) {
  1051. if (hours >= 24) {
  1052. var days = Math.ceil(hours / 24);
  1053. if (days >= 30 && days < 365) {
  1054. return Math.ceil(days / 30) + getRepoOrOrg(8, isZh);
  1055. } else if (days >= 365) {
  1056. return Math.ceil(days / 365) + getRepoOrOrg(9, isZh);
  1057. }
  1058. return Math.ceil(hours / 24) + getRepoOrOrg(7, isZh);
  1059. } else {
  1060. return hours + getRepoOrOrg(4, isZh);
  1061. }
  1062. } else {
  1063. return minutes + getRepoOrOrg(5, isZh);
  1064. }
  1065. }
  1066. }
  1067. function getRepoOrOrg(key, isZhLang) {
  1068. if (isZhLang) {
  1069. return repoAndOrgZH[key];
  1070. } else {
  1071. return repoAndOrgEN[key];
  1072. }
  1073. }
  1074. var repoAndOrgZH = {
  1075. 1: "项目",
  1076. 2: "成员",
  1077. 3: "团队",
  1078. 4: "小时前",
  1079. 5: "分钟前",
  1080. 6: "秒前",
  1081. 7: "天前",
  1082. 8: "个月前",
  1083. 9: "年前",
  1084. };
  1085. var repoAndOrgEN = {
  1086. 1: "repository",
  1087. 2: "Members ",
  1088. 3: "Teams",
  1089. 4: " hours ago",
  1090. 5: " minutes ago",
  1091. 6: " seconds ago",
  1092. 7: " day ago",
  1093. 8: " month ago",
  1094. 9: " year ago",
  1095. };
  1096. function page(current) {
  1097. currentPage = current;
  1098. doSearch(
  1099. currentSearchTableName,
  1100. currentSearchKeyword,
  1101. current,
  1102. pageSize,
  1103. false,
  1104. currentSearchSortBy,
  1105. OnlySearchLabel
  1106. );
  1107. }
  1108. function nextPage() {
  1109. currentPage = currentPage + 1;
  1110. page(currentPage);
  1111. }
  1112. function prePage() {
  1113. if (currentPage > 1) {
  1114. currentPage = currentPage - 1;
  1115. page(currentPage);
  1116. }
  1117. }
  1118. function getXPosition(e) {
  1119. var x = e.offsetLeft;
  1120. while ((e = e.offsetParent)) {
  1121. x += e.offsetLeft;
  1122. }
  1123. return x + 20; //-260防止屏幕超出
  1124. }
  1125. //获取y坐标
  1126. function getYPosition(e) {
  1127. var y = e.offsetTop;
  1128. while ((e = e.offsetParent)) {
  1129. y += e.offsetTop;
  1130. }
  1131. return y + 20; //80为input高度
  1132. }
  1133. function goPage(event) {
  1134. var inputpage = document.getElementById("inputpage_div");
  1135. var left = getXPosition(event.target);
  1136. var top = getYPosition(event.target);
  1137. var goNum = $("#inputpage").val();
  1138. if (goNum <= 0) {
  1139. showTip(getLabel(isZh, "search_input_large_0"), "warning", left + 5, top);
  1140. } else if (goNum <= totalPage) {
  1141. page(parseInt(goNum, 10));
  1142. } else {
  1143. showTip(getLabel(isZh, "search_input_maxed"), "warning", left + 5, top);
  1144. }
  1145. }
  1146. function showTip(tip, type, left, top) {
  1147. var $tip = $("#tipmsg");
  1148. var tipmsg = document.getElementById("tipmsg");
  1149. var style =
  1150. "z-index:10024;top:" +
  1151. top +
  1152. "px;left:" +
  1153. left +
  1154. "px;position:absolute;width:200px;height:60px;vertical-align:middle;";
  1155. tipmsg.style = style;
  1156. var html = "<p>" + tip + "</p>";
  1157. $tip
  1158. .stop(true)
  1159. .prop("class", "alert alert-" + type)
  1160. .html(html)
  1161. .fadeIn(500)
  1162. .delay(2000)
  1163. .fadeOut(500);
  1164. }
  1165. function setPage(currentPage) {
  1166. var html = "";
  1167. startIndex = currentPage - 1;
  1168. if (startIndex < 1) {
  1169. startIndex = 1;
  1170. }
  1171. endIndex = currentPage + 2;
  1172. if (endIndex >= totalPage) {
  1173. endIndex = totalPage;
  1174. }
  1175. html +=
  1176. '<span class="item">' +
  1177. getLabel(isZh, "search_input_total") +
  1178. " " +
  1179. totalNum +
  1180. " " +
  1181. getLabel(isZh, "search_srtip") +
  1182. "</span>";
  1183. if (currentPage > 1) {
  1184. html +=
  1185. '<a class="item navigation" href="javascript:page(1)"><span class="navigation_label">' +
  1186. getLabel(isZh, "search_home_page") +
  1187. "</span></a>";
  1188. html +=
  1189. '<a class="item navigation" href="javascript:prePage()"><i class="left arrow icon"></i></a>';
  1190. } else {
  1191. html +=
  1192. '<a class="disabled item navigation" href="javascript:page(1)"><span class="navigation_label">' +
  1193. getLabel(isZh, "search_home_page") +
  1194. "</span></a>";
  1195. html +=
  1196. '<a class="disabled item navigation" href="javascript:prePage()"><i class="left arrow icon"></i></a>';
  1197. }
  1198. for (var i = startIndex; i <= endIndex; i++) {
  1199. var page_i = i;
  1200. if (page_i > totalPage) {
  1201. break;
  1202. }
  1203. if (page_i == currentPage) {
  1204. html +=
  1205. '<a id="page_' +
  1206. page_i +
  1207. '" class="active item" href="javascript:page(' +
  1208. page_i +
  1209. ')">' +
  1210. page_i +
  1211. "</a>";
  1212. } else {
  1213. html +=
  1214. '<a id="page_' +
  1215. page_i +
  1216. '" class="item" href="javascript:page(' +
  1217. page_i +
  1218. ')">' +
  1219. page_i +
  1220. "</a>";
  1221. }
  1222. }
  1223. if (endIndex < totalPage - 1) {
  1224. html += "...";
  1225. html +=
  1226. '<a id="page_' +
  1227. totalPage +
  1228. '" class="item" href="javascript:page(' +
  1229. totalPage +
  1230. ')">' +
  1231. totalPage +
  1232. "</a>";
  1233. }
  1234. if (currentPage >= totalPage) {
  1235. html +=
  1236. '<a class="disabled item navigation" href="javascript:nextPage()"><i class="icon right arrow"></i></a>';
  1237. html +=
  1238. '<a class="disabled item navigation" href="javascript:page(' +
  1239. totalPage +
  1240. ')"><span class="navigation_label">' +
  1241. getLabel(isZh, "search_last_page") +
  1242. "</span></a>";
  1243. } else {
  1244. html +=
  1245. '<a class="item navigation" href="javascript:nextPage()"><i class="icon right arrow"></i></a>';
  1246. html +=
  1247. '<a class="item navigation" href="javascript:page(' +
  1248. totalPage +
  1249. ')"><span class="navigation_label">' +
  1250. getLabel(isZh, "search_last_page") +
  1251. "</span></a>";
  1252. }
  1253. html +=
  1254. '<div class="item"> ' +
  1255. getLabel(isZh, "search_go_to") +
  1256. '<div id="inputpage_div" class="ui input"><input id="inputpage" type="text"></div>' +
  1257. getLabel(isZh, "search_go_page") +
  1258. "</div>";
  1259. document.getElementById("page_menu").innerHTML = html;
  1260. $("#inputpage").on("keypress", function (event) {
  1261. if (event.keyCode == 13) {
  1262. goPage(event);
  1263. }
  1264. });
  1265. }
  1266. $("#keyword_input").on("keypress", function (event) {
  1267. if (event.keyCode == 13) {
  1268. search();
  1269. }
  1270. });
  1271. var LanguagesColor = {
  1272. "1C Enterprise": "#814CCC",
  1273. ABAP: "#E8274B",
  1274. "AGS Script": "#B9D9FF",
  1275. AMPL: "#E6EFBB",
  1276. ANTLR: "#9DC3FF",
  1277. "API Blueprint": "#2ACCA8",
  1278. APL: "#5A8164",
  1279. ASP: "#6a40fd",
  1280. ATS: "#1ac620",
  1281. ActionScript: "#882B0F",
  1282. Ada: "#02f88c",
  1283. Agda: "#315665",
  1284. Alloy: "#64C800",
  1285. AngelScript: "#C7D7DC",
  1286. AppleScript: "#101F1F",
  1287. Arc: "#aa2afe",
  1288. AspectJ: "#a957b0",
  1289. Assembly: "#6E4C13",
  1290. Asymptote: "#4a0c0c",
  1291. AutoHotkey: "#6594b9",
  1292. AutoIt: "#1C3552",
  1293. Ballerina: "#FF5000",
  1294. Batchfile: "#C1F12E",
  1295. BlitzMax: "#cd6400",
  1296. Boo: "#d4bec1",
  1297. Brainfuck: "#2F2530",
  1298. C: "#555555",
  1299. "C#": "#178600",
  1300. "C++": "#f34b7d",
  1301. CSS: "#563d7c",
  1302. Ceylon: "#dfa535",
  1303. Chapel: "#8dc63f",
  1304. Cirru: "#ccccff",
  1305. Clarion: "#db901e",
  1306. Clean: "#3F85AF",
  1307. Click: "#E4E6F3",
  1308. Clojure: "#db5855",
  1309. CoffeeScript: "#244776",
  1310. ColdFusion: "#ed2cd6",
  1311. "Common Lisp": "#3fb68b",
  1312. "Common Workflow Language": "#B5314C",
  1313. "Component Pascal": "#B0CE4E",
  1314. Crystal: "#000100",
  1315. Cuda: "#3A4E3A",
  1316. D: "#ba595e",
  1317. DM: "#447265",
  1318. Dart: "#00B4AB",
  1319. DataWeave: "#003a52",
  1320. Dhall: "#dfafff",
  1321. Dockerfile: "#384d54",
  1322. Dogescript: "#cca760",
  1323. Dylan: "#6c616e",
  1324. E: "#ccce35",
  1325. ECL: "#8a1267",
  1326. EQ: "#a78649",
  1327. Eiffel: "#946d57",
  1328. Elixir: "#6e4a7e",
  1329. Elm: "#60B5CC",
  1330. "Emacs Lisp": "#c065db",
  1331. EmberScript: "#FFF4F3",
  1332. Erlang: "#B83998",
  1333. "F#": "#b845fc",
  1334. "F*": "#572e30",
  1335. FLUX: "#88ccff",
  1336. Factor: "#636746",
  1337. Fancy: "#7b9db4",
  1338. Fantom: "#14253c",
  1339. Faust: "#c37240",
  1340. Forth: "#341708",
  1341. Fortran: "#4d41b1",
  1342. FreeMarker: "#0050b2",
  1343. Frege: "#00cafe",
  1344. "G-code": "#D08CF2",
  1345. GAML: "#FFC766",
  1346. GDScript: "#355570",
  1347. "Game Maker Language": "#71b417",
  1348. Genie: "#fb855d",
  1349. Gherkin: "#5B2063",
  1350. Glyph: "#c1ac7f",
  1351. Gnuplot: "#f0a9f0",
  1352. Go: "#00ADD8",
  1353. Golo: "#88562A",
  1354. Gosu: "#82937f",
  1355. "Grammatical Framework": "#79aa7a",
  1356. Groovy: "#e69f56",
  1357. HTML: "#e34c26",
  1358. Hack: "#878787",
  1359. Harbour: "#0e60e3",
  1360. Haskell: "#5e5086",
  1361. Haxe: "#df7900",
  1362. HiveQL: "#dce200",
  1363. HolyC: "#ffefaf",
  1364. Hy: "#7790B2",
  1365. IDL: "#a3522f",
  1366. "IGOR Pro": "#0000cc",
  1367. Idris: "#b30000",
  1368. Io: "#a9188d",
  1369. Ioke: "#078193",
  1370. Isabelle: "#FEFE00",
  1371. J: "#9EEDFF",
  1372. JSONiq: "#40d47e",
  1373. Java: "#b07219",
  1374. JavaScript: "#f1e05a",
  1375. Jolie: "#843179",
  1376. Jsonnet: "#0064bd",
  1377. Julia: "#a270ba",
  1378. "Jupyter Notebook": "#DA5B0B",
  1379. KRL: "#28430A",
  1380. Kotlin: "#F18E33",
  1381. LFE: "#4C3023",
  1382. LLVM: "#185619",
  1383. LOLCODE: "#cc9900",
  1384. LSL: "#3d9970",
  1385. Lasso: "#999999",
  1386. Lex: "#DBCA00",
  1387. LiveScript: "#499886",
  1388. LookML: "#652B81",
  1389. Lua: "#000080",
  1390. MATLAB: "#e16737",
  1391. MAXScript: "#00a6a6",
  1392. MLIR: "#5EC8DB",
  1393. MQL4: "#62A8D6",
  1394. MQL5: "#4A76B8",
  1395. MTML: "#b7e1f4",
  1396. Makefile: "#427819",
  1397. Mask: "#f97732",
  1398. Max: "#c4a79c",
  1399. Mercury: "#ff2b2b",
  1400. Meson: "#007800",
  1401. Metal: "#8f14e9",
  1402. Mirah: "#c7a938",
  1403. "Modula-3": "#223388",
  1404. NCL: "#28431f",
  1405. Nearley: "#990000",
  1406. Nemerle: "#3d3c6e",
  1407. NetLinx: "#0aa0ff",
  1408. "NetLinx+ERB": "#747faa",
  1409. NetLogo: "#ff6375",
  1410. NewLisp: "#87AED7",
  1411. Nextflow: "#3ac486",
  1412. Nim: "#37775b",
  1413. Nit: "#009917",
  1414. Nix: "#7e7eff",
  1415. Nu: "#c9df40",
  1416. OCaml: "#3be133",
  1417. ObjectScript: "#424893",
  1418. "Objective-C": "#438eff",
  1419. "Objective-C++": "#6866fb",
  1420. "Objective-J": "#ff0c5a",
  1421. Odin: "#60AFFE",
  1422. Omgrofl: "#cabbff",
  1423. Opal: "#f7ede0",
  1424. OpenQASM: "#AA70FF",
  1425. Oxygene: "#cdd0e3",
  1426. Oz: "#fab738",
  1427. P4: "#7055b5",
  1428. PHP: "#4F5D95",
  1429. PLSQL: "#dad8d8",
  1430. Pan: "#cc0000",
  1431. Papyrus: "#6600cc",
  1432. Parrot: "#f3ca0a",
  1433. Pascal: "#E3F171",
  1434. Pawn: "#dbb284",
  1435. Pep8: "#C76F5B",
  1436. Perl: "#0298c3",
  1437. PigLatin: "#fcd7de",
  1438. Pike: "#005390",
  1439. PogoScript: "#d80074",
  1440. PostScript: "#da291c",
  1441. PowerBuilder: "#8f0f8d",
  1442. PowerShell: "#012456",
  1443. Processing: "#0096D8",
  1444. Prolog: "#74283c",
  1445. "Propeller Spin": "#7fa2a7",
  1446. Puppet: "#302B6D",
  1447. PureBasic: "#5a6986",
  1448. PureScript: "#1D222D",
  1449. Python: "#3572A5",
  1450. QML: "#44a51c",
  1451. Quake: "#882233",
  1452. R: "#198CE7",
  1453. RAML: "#77d9fb",
  1454. RUNOFF: "#665a4e",
  1455. Racket: "#3c5caa",
  1456. Ragel: "#9d5200",
  1457. Raku: "#0000fb",
  1458. Rascal: "#fffaa0",
  1459. Reason: "#ff5847",
  1460. Rebol: "#358a5b",
  1461. Red: "#f50000",
  1462. "Ren'Py": "#ff7f7f",
  1463. Ring: "#2D54CB",
  1464. Riot: "#A71E49",
  1465. Roff: "#ecdebe",
  1466. Rouge: "#cc0088",
  1467. Ruby: "#701516",
  1468. Rust: "#dea584",
  1469. SAS: "#B34936",
  1470. SQF: "#3F3F3F",
  1471. "SRecode Template": "#348a34",
  1472. SaltStack: "#646464",
  1473. Scala: "#c22d40",
  1474. Scheme: "#1e4aec",
  1475. Self: "#0579aa",
  1476. Shell: "#89e051",
  1477. Shen: "#120F14",
  1478. Slash: "#007eff",
  1479. Slice: "#003fa2",
  1480. SmPL: "#c94949",
  1481. Smalltalk: "#596706",
  1482. Solidity: "#AA6746",
  1483. SourcePawn: "#5c7611",
  1484. Squirrel: "#800000",
  1485. Stan: "#b2011d",
  1486. "Standard ML": "#dc566d",
  1487. Starlark: "#76d275",
  1488. SuperCollider: "#46390b",
  1489. Swift: "#ffac45",
  1490. SystemVerilog: "#DAE1C2",
  1491. "TI Program": "#A0AA87",
  1492. Tcl: "#e4cc98",
  1493. TeX: "#3D6117",
  1494. Terra: "#00004c",
  1495. Turing: "#cf142b",
  1496. TypeScript: "#2b7489",
  1497. UnrealScript: "#a54c4d",
  1498. V: "#5d87bd",
  1499. VBA: "#867db1",
  1500. VBScript: "#15dcdc",
  1501. VCL: "#148AA8",
  1502. VHDL: "#adb2cb",
  1503. Vala: "#fbe5cd",
  1504. Verilog: "#b2b7f8",
  1505. "Vim script": "#199f4b",
  1506. "Visual Basic .NET": "#945db7",
  1507. Volt: "#1F1F1F",
  1508. Vue: "#2c3e50",
  1509. WebAssembly: "#04133b",
  1510. Wollok: "#a23738",
  1511. X10: "#4B6BEF",
  1512. XC: "#99DA07",
  1513. XQuery: "#5232e7",
  1514. XSLT: "#EB8CEB",
  1515. YARA: "#220000",
  1516. YASnippet: "#32AB90",
  1517. Yacc: "#4B6C4B",
  1518. ZAP: "#0d665e",
  1519. ZIL: "#dc75e5",
  1520. ZenScript: "#00BCD1",
  1521. Zephir: "#118f9e",
  1522. Zig: "#ec915c",
  1523. eC: "#913960",
  1524. "mIRC Script": "#926059",
  1525. mcfunction: "#E22837",
  1526. nesC: "#94B0C7",
  1527. ooc: "#b0b77e",
  1528. q: "#0040cd",
  1529. sed: "#64b970",
  1530. wdl: "#42f1f4",
  1531. wisp: "#7582D1",
  1532. xBase: "#403a40",
  1533. };
  1534. function getLabel(isZh, key) {
  1535. if (isZh) {
  1536. return zhCN[key];
  1537. } else {
  1538. return esUN[key];
  1539. }
  1540. }
  1541. var zhCN = {
  1542. search: "搜索",
  1543. search_repo: "项目",
  1544. search_dataset: "数据集",
  1545. search_issue: "任务",
  1546. search_pr: "合并请求",
  1547. search_user: "用户",
  1548. search_org: "组织",
  1549. search_finded: "找到",
  1550. search_matched: "最佳匹配",
  1551. search_matched_download: "下载次数",
  1552. search_lasted_update: "最后更新于",
  1553. search_letter_asc: "字母顺序排序",
  1554. search_letter_desc: "字母逆序排序",
  1555. search_lasted_create: "最近创建",
  1556. search_early_create: "最早创建",
  1557. search_add_by: "加入于",
  1558. search_lasted: "最近更新",
  1559. search_open: "开启中",
  1560. search_closed: "已关闭",
  1561. search_watched: "关注数",
  1562. search_star: "点赞数",
  1563. search_fork: "Fork数",
  1564. search_input_large_0: "请输入大于0的数值。",
  1565. search_input_maxed: "不能超出总页数。",
  1566. search_input_total: "共",
  1567. search_srtip: "条",
  1568. search_home_page: "首页",
  1569. search_last_page: "末页",
  1570. search_go_to: "前往",
  1571. search_go_page: "页",
  1572. find_title:
  1573. '“<strong class="highlight" id="keyword_desc">{keyword}</strong>”相关{tablename}约为{total}个',
  1574. search_empty: "<strong>请输入任意关键字开始搜索。</strong>",
  1575. };
  1576. var esUN = {
  1577. search: "Search",
  1578. search_repo: "Repository",
  1579. search_dataset: "DataSet",
  1580. search_issue: "Issue",
  1581. search_pr: "Pull Request",
  1582. search_user: "User",
  1583. search_org: "Organization",
  1584. search_finded: "Find",
  1585. search_matched: "Best Match",
  1586. search_matched_download: "Most downloads",
  1587. search_lasted_update: "Updated ",
  1588. search_letter_asc: "Alphabetically",
  1589. search_letter_desc: "Reverse alphabetically",
  1590. search_lasted_create: "Recently created",
  1591. search_early_create: "First created",
  1592. search_add_by: "Joined on",
  1593. search_lasted: "Recently updated",
  1594. search_open: "Open",
  1595. search_closed: "Closed",
  1596. search_watched: "Watches",
  1597. search_star: "Stars",
  1598. search_fork: "Forks",
  1599. search_input_large_0: "Please enter a value greater than 0.",
  1600. search_input_maxed: "Cannot exceed total pages.",
  1601. search_input_total: "Total",
  1602. search_srtip: "",
  1603. search_home_page: "First",
  1604. search_last_page: "Last",
  1605. search_go_to: "Go",
  1606. search_go_page: "Page",
  1607. find_title:
  1608. ' {total} "<strong class="highlight" id="keyword_desc">{keyword}</strong>" related {tablename}',
  1609. search_empty:
  1610. "<strong>Please enter any keyword to start the search.</strong>",
  1611. };
  1612. initDiv(false);
  1613. document.onreadystatechange = function () {
  1614. if (document.readyState === "complete") {
  1615. var tmpSearchLabel = sessionStorage.getItem("searchLabel");
  1616. if (tmpSearchLabel) {
  1617. sessionStorage.removeItem("searchLabel");
  1618. doSearchLabel(
  1619. sessionStorage.getItem("tableName"),
  1620. sessionStorage.getItem("keyword"),
  1621. sessionStorage.getItem("sortBy"),
  1622. sessionStorage.getItem("ascending")
  1623. );
  1624. } else {
  1625. var specifySearch = sessionStorage.getItem("specifySearch");
  1626. if (specifySearch) {
  1627. sessionStorage.removeItem("specifySearch");
  1628. document.getElementById("keyword_input").value =
  1629. sessionStorage.getItem("keyword");
  1630. doSpcifySearch(
  1631. sessionStorage.getItem("tableName"),
  1632. sessionStorage.getItem("keyword"),
  1633. sessionStorage.getItem("sortBy"),
  1634. sessionStorage.getItem("ascending")
  1635. );
  1636. } else {
  1637. search();
  1638. }
  1639. }
  1640. }
  1641. };