main.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. * @Author HonorLee (dev@honorlee.me)
  3. * @Version 1.0 (2019-04-21)
  4. * @License MIT
  5. */
  6. var bg,delWord;
  7. $(function(){
  8. $('.loading').addClass('on').find('p').text('词库读取中,请稍后...');
  9. chrome.runtime.getBackgroundPage(function(background){
  10. bg = background;
  11. buildStarList();
  12. $('.showTimeSets input').val(bg.setting.timerMin);
  13. });
  14. chrome.runtime.onMessage.addListener(function(msg){
  15. if(msg=="updateList") buildNormalList();
  16. if(msg=="updateStarList") buildStarList();
  17. })
  18. chrome.notifications.onButtonClicked.addListener(function(e,index){
  19. if(e!='deleteword') return;
  20. if(index==0) bg.deleteWord(delWord);
  21. delWord = null;
  22. })
  23. $('.tabContent .list').on('click','li a.info',function(){
  24. var word = $(this).parents('li').data('word');
  25. bg.showWordInfo(word);
  26. });
  27. $('.tabContent .list').on('click','li a.star',function(){
  28. var word = $(this).parents('li').data('word');
  29. var nowType = $(this).data('star');
  30. if(nowType=='undefined') nowType = 0;
  31. var toType = Math.abs(nowType-1);
  32. bg.starWord(toType,word);
  33. $(this).data('star',toType);
  34. $(this).html('<i class="fa fa-star'+(toType==1?'':'-o')+'"></i>');
  35. });
  36. $('.tabContent .list').on('click','li a.del',function(){
  37. delWord = $(this).parents('li').data('word');
  38. chrome.notifications.create('deleteword',{iconUrl:'../asset/img/logo@x128.png',message:'确定从词库中删除['+delWord+']单词么?',type:'basic',title:'移除单词!',buttons:[{title:'Yes'},{title:'No'}]});
  39. // if(confirm('确定从词库中删除['+word+']单词么?')){
  40. // bg.deleteWord(word);
  41. // }
  42. });
  43. $('.title a.minimize').click(function(){
  44. chrome.app.window.current().minimize();
  45. });
  46. $('.title a.close').click(function(){
  47. chrome.app.window.current().close();
  48. });
  49. $('.tabContent .search').on('keyup',function(){
  50. var word = $(this).val();
  51. $(this).parent().find('.list li').hide().filter(":contains('"+word+"')").show();
  52. });
  53. $('.tabs a').click(function(){
  54. $(this).addClass('on').siblings().removeClass('on');
  55. $('.tabContent').removeClass('on').eq($(this).index()).addClass('on');
  56. });
  57. $("#clickme").click(function (source) {
  58. $("#my_file").trigger('click');
  59. })
  60. $("#my_file").on('change',function(){
  61. if($('#my_file')[0].files.length==0) return;
  62. $('.loading').addClass('on').find('p').text('词库导入中,请稍后...');
  63. var file = $('#my_file')[0].files[0];
  64. var reader = new FileReader();
  65. reader.readAsText(file, "utf-8");
  66. reader.onload = function (e) {
  67. var tmpArr = e.target.result.split("\n");
  68. bg.importWord(tmpArr);
  69. }
  70. });
  71. $('.settings a.save').click(function(){
  72. bg.setting = {
  73. timerMin:$('input[name=showTime]').val()
  74. }
  75. chrome.storage.local.set({setting:bg.setting},function(e){
  76. bg.setTimer();
  77. chrome.notifications.create('importNotifi'+(new Date().getTime()),{iconUrl:'../asset/img/logo@x128.png',message:'设置已保存',type:'basic',title:'设置已保存!'});
  78. $('.loading').removeClass('on');
  79. })
  80. });
  81. $('.settings button#importWord').click(function(){
  82. chrome.app.window.create('windows/import.html', {
  83. id:'import',
  84. resizable:false,
  85. alwaysOnTop:true,
  86. innerBounds:{width:300,height:400},
  87. // hidden:true,
  88. frame:{type:'none'}
  89. });
  90. });
  91. $('.importForm .ok').click(function(){
  92. var list = $('.importForm textarea').val().split('\n');
  93. bg.importWord(list);
  94. chrome.app.window.current().close();
  95. });
  96. $('.importForm .cancel').click(function(){
  97. chrome.app.window.current().close();
  98. });
  99. });
  100. function buildNormalList(listIndex){
  101. $('.total .list ul').empty();
  102. $('.loading').addClass('on').find('p').text('词库读取中,请稍后...');
  103. var dom = ''
  104. if(bg.wordDataArr.length) bg.wordDataArr.forEach( function(word) {
  105. var starType = bg.wordDataObj[word]['isStar'];
  106. if(starType==undefined) starType=0;
  107. dom += '<li name="'+word+'" data-word="'+word+'">'+word+'<div class="btn"><a class="info" title="查看详情"><i class="fa fa-comment-o"></i></a><a class="star" data-star="'+starType+'" title="加入收藏"><i class="fa fa-star'+(starType==1?'':'-o')+'"></i></a><a class="del" title="移出词库"><i class="fa fa-trash-o"></i></a></div></li>';
  108. });
  109. $('.total .list ul').append(dom);
  110. $('.tabs a:eq(0) span').text('('+bg.wordDataArr.length+')');
  111. $('.loading').removeClass('on');
  112. }
  113. function buildStarList(listIndex){
  114. $('.starList .list ul').empty();
  115. $('.loading').addClass('on').find('p').text('收藏词库读取中,请稍后...');
  116. var dom = ''
  117. if(bg.wordStarArr.length) bg.wordStarArr.forEach( function(word) {
  118. var starType = bg.wordDataObj[word]['isStar'];
  119. if(starType==undefined) starType=0;
  120. dom += '<li data-word="'+word+'">'+word+'<div class="btn"><a class="info" title="查看详情"><i class="fa fa-comment-o"></i></a><a class="star" data-star="'+starType+'" title="加入收藏"><i class="fa fa-star'+(starType==1?'':'-o')+'"></i></a><a class="del" title="移出词库"><i class="fa fa-trash-o"></i></a></div></li>'
  121. });
  122. $('.starList .list ul').append(dom);
  123. $('.tabs a:eq(1) span').text('('+bg.wordStarArr.length+')');
  124. $('.loading').removeClass('on');
  125. buildNormalList();
  126. }