kuaifan 5 سال پیش
والد
کامیت
6dd9a1abad

+ 19 - 0
resources/notify/chrome/js/base.js

@@ -65,6 +65,25 @@
             return info.host || info.hostname;
         } catch (err) {
             console.log(err);
+            return "";
+        }
+    },
+
+    /**
+     * 地址获取目录
+     * @param url
+     * @returns {string}
+     */
+    getPathname(url) {
+        if (/^chrome:\/\//.test(url)) {
+            return "";
+        }
+        try {
+            var info = new URL(url);
+            return info.pathname;
+        } catch (err) {
+            console.log(err);
+            return "";
         }
     },
 

+ 6 - 2
resources/notify/chrome/js/notify.js

@@ -53,6 +53,10 @@ const getBadgeNum = function () {
                 if (['taskA'].indexOf(body.type) !== -1) {
                     return;
                 }
+                var tempLists = $A.jsonParse($A.getStorage("configLists"), {});
+                if (typeof tempLists[key] == "object" && tempLists[key].disabled === true) {
+                    return;
+                }
                 switch (msgDetail.messageType) {
                     case 'open':
                         instances[key].open = true;
@@ -64,11 +68,11 @@ const getBadgeNum = function () {
                         instances[key].unread++;
                         chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
                             if ($A.getHost(tabs[0].url) != key) {
-                                var url = 'http://' + key + '/#/todo?token=' + encodeURIComponent(instances[key].token) + '&open=chat';
+                                var opurl = 'http://' + key + '/todo?token=' + encodeURIComponent(instances[key].token) + '&open=chat';
                                 $A.showNotify(key, {
                                     body: $A.getMsgDesc(body),
                                     icon: body.userimg
-                                }, url);
+                                }, opurl);
                             }
                         });
                         break;

+ 27 - 0
resources/notify/chrome/js/options.js

@@ -0,0 +1,27 @@
+var configLists = $A.jsonParse($A.getStorage("configLists"), {});
+var html = '';
+
+for (var index in configLists) {
+    if (!configLists.hasOwnProperty(index)) {
+        continue;
+    }
+    const config = configLists[index];
+    html += '<li>\n' +
+        '            <label>\n' +
+        '                <input type="checkbox" value="disabled" class="checkbox" name="' + config.hostname + '" ' + (config.disabled === true ? 'checked="checked"' : '') + '> 禁用 (' + config.hostname + ')\n' +
+        '            </label>\n' +
+        '        </li>';
+    $("#lists").html(html);
+}
+
+if (html == '') {
+    $("#lists").html('没有相关的记录!');
+} else {
+    $("input[class=checkbox]").on('change', function () {
+        var tempLists = $A.jsonParse($A.getStorage("configLists"), {});
+        if (typeof tempLists[$(this).attr("name")] == "object") {
+            tempLists[$(this).attr("name")]["disabled"] = $(this).is(':checked');
+            $A.setStorage("configLists", $A.jsonStringify(tempLists));
+        }
+    });
+}

+ 8 - 2
resources/notify/chrome/js/popup.js

@@ -28,10 +28,14 @@ function showLists(lists) {
     var html = '';
     var j = 1;
     var length = Object.keys(lists).length;
+    var tempLists = $A.jsonParse($A.getStorage("configLists"), {});
     for (var index in lists) {
         if (!lists.hasOwnProperty(index)) {
             continue;
         }
+        if (typeof tempLists[index] == "object" && tempLists[index].disabled === true) {
+            continue;
+        }
         const item = lists[index];
         html+= '<li class="message_box' + (j == length ? ' last' : '') + '" data-index="' + index + '" data-token="' + item.token + '">';
         html+= '<div class="message_username">' + item.username + '</div>';
@@ -55,19 +59,21 @@ function showLists(lists) {
     $("div.message_unread,div.message_host").click(function(){
         const index = $(this).parents("li").attr("data-index");
         const token = encodeURIComponent($(this).parents("li").attr("data-token"));
+        const opurl = 'http://' + index + '/todo?token=' + token + '&open=chat';
         chrome.tabs.query({}, function (tabs) {
             var has = false;
             tabs.some(function (item) {
                 if ($A.getHost(item.url) == index) {
+                    var url = $A.getPathname(item.url) == '/' ? opurl : ($A.urlAddParams($A.removeURLParameter(item.url, ['open', 'rand']), {open: 'chat', rand: Math.round(new Date().getTime())}))
                     chrome.windows.update(item.windowId, {focused: true});
                     chrome.tabs.highlight({tabs: item.index, windowId: item.windowId});
-                    chrome.tabs.update({url: $A.urlAddParams($A.removeURLParameter(item.url, ['open', 'rand']), {open: 'chat', rand: Math.round(new Date().getTime())})});
+                    chrome.tabs.update({url: url});
                     onClick(index);
                     return has = true;
                 }
             });
             if (!has) {
-                chrome.tabs.create({ url: 'http://' + index + '/#/todo?token=' + token + '&open=chat' });
+                chrome.tabs.create({ url: opurl });
                 onClick(index);
             }
         });

+ 2 - 1
resources/notify/chrome/manifest.json

@@ -1,6 +1,6 @@
 {
     "manifest_version": 2,
-    "version": "1.1",
+    "version": "1.2",
     "name": "TEAM提醒",
     "description": "TEAM消息提醒",
     "icons": {
@@ -16,6 +16,7 @@
         "default_title": "TEAM消息提醒",
         "default_popup": "popup.html"
     },
+    "options_page": "options.html",
 	"content_scripts": [
         {
             "js": ["js/content.js"],

+ 34 - 0
resources/notify/chrome/options.html

@@ -0,0 +1,34 @@
+<html>
+<head>
+    <meta charset="utf-8">
+    <style>
+        * {
+            margin: 0;
+            padding: 0;
+        }
+
+        #options_div {
+            padding: 25px;
+            width: 400px;
+            border: 1px solid #ddd;
+        }
+        ul {
+            padding: 10px;
+            list-style: none;
+            font-size: 14px;
+        }
+        ul li {
+            padding: 5px;
+        }
+    </style>
+</head>
+<body>
+<div id="options_div">
+    <h1>通知提示设置</h1>
+    <ul id="lists"></ul>
+</div>
+<script src="js/jquery-3.1.1.min.js"></script>
+<script src="js/base.js"></script>
+<script src="js/options.js"></script>
+</body>
+</html>

+ 1 - 0
resources/notify/chrome/popup.html

@@ -1,5 +1,6 @@
 <html>
 <head>
+    <meta charset="utf-8">
     <style>
         * {
             margin: 0;