Browse Source

confirm send_usage_data on initialization.

oldj 6 years ago
parent
commit
08fc905e7b

+ 2 - 0
app-ui/App.jsx

@@ -12,6 +12,7 @@ import Panel from './Panel'
 import Content from './content/Content'
 import SudoPrompt from './frame/SudoPrompt'
 import EditPrompt from './frame/EditPrompt'
+import StatConfirm from './frame/StatConfirm'
 import About from './about/About'
 import PreferencesPrompt from './frame/PreferencesPrompt'
 import Agent from './Agent'
@@ -196,6 +197,7 @@ export default class App extends React.Component {
         onDragOver={this.handleOndragover}
         onDrop={this.handleOndrop}
       >
+        <StatConfirm lang={this.state.lang}/>
         <SudoPrompt lang={this.state.lang}/>
         <EditPrompt
           lang={this.state.lang}

+ 2 - 2
app-ui/frame/MyFrame.jsx

@@ -60,7 +60,7 @@ export default class MyFrame extends React.Component {
     if (!this.props.show) {
       return null
     }
-    let {show, title, body, lang, width, okText} = this.props
+    let {show, title, body, lang, width, okText, cancelText} = this.props
 
     return (
       <Modal
@@ -72,7 +72,7 @@ export default class MyFrame extends React.Component {
         width={width}
         footer={[
           <Button key="back" size="large" onClick={this.onCancel.bind(this)}>
-            {lang.cancel}
+            {cancelText || lang.cancel}
           </Button>,
           <Button key="submit" type="primary" size="large" loading={false} onClick={this.onOK.bind(this)}>
             {okText || lang.ok}

+ 46 - 0
app-ui/frame/StatConfirm.jsx

@@ -0,0 +1,46 @@
+/**
+ * @author oldj
+ */
+
+import React, { useState, useEffect } from 'react'
+import MyFrame from './MyFrame'
+import Agent from '../Agent'
+import { Modal } from 'antd'
+
+const send_usage_data = 'send_usage_data'
+
+const StatConfirm = (props) => {
+  let {lang} = props
+  let [show, setShow] = useState(false)
+
+  useEffect(() => {
+    Agent.pact('getPref')
+      .then(pref => {
+        console.log(pref)
+        if (typeof pref[send_usage_data] !== 'boolean') {
+          setShow(true)
+        }
+      })
+  })
+
+  const setSend = (is_send) => {
+    Agent.pact('setPref', send_usage_data, is_send)
+      .then(() => setShow(false))
+  }
+
+  return (
+    <MyFrame
+      show={show}
+      title={lang.pref_tab_usage_data_title}
+      body={<div className="ln">{lang.pref_tab_usage_data_desc}</div>}
+      onOK={() => setShow(true)}
+      onCancel={() => setSend(false)}
+      lang={lang}
+      width={400}
+      okText={lang.send_usage_data_ok}
+      cancelText={lang.send_usage_data_cancel}
+    />
+  )
+}
+
+export default StatConfirm

+ 2 - 0
app/lang/cn.js

@@ -100,6 +100,8 @@ exports.content = {
   , refresh: '刷新'
   , remote_hosts: '远程方案'
   , search: '搜索'
+  , send_usage_data_ok: '好的'
+  , send_usage_data_cancel: '不发送'
   , set_and_back: '设置并返回'
   , set_and_relaunch_app: '确定并重启程序'
   , show_title_on_tray: '在系统托盘显示标题'

+ 2 - 0
app/lang/en.js

@@ -100,6 +100,8 @@ exports.content = {
   , refresh: 'Refresh'
   , remote_hosts: 'Remote hosts'
   , search: 'Search'
+  , send_usage_data_ok: 'Ok'
+  , send_usage_data_cancel: 'Don\'t send'
   , set_and_back: 'Set and back'
   , set_and_relaunch_app: 'Set and Relaunch'
   , show_title_on_tray: 'Show title on tray'

+ 8 - 8
app/server/actions/statRecord.js

@@ -17,13 +17,13 @@ let send_usage_data = null
 
 function log (actions) {
   let u = url + '?' + [
-      'app=sh3',
-      'action=' + encodeURIComponent(actions),
-      'v=' + encodeURIComponent(version),
-      'os=' + process.platform,
-      'sid=' + encodeURIComponent(session_id),
-      '_r=' + Math.random()
-    ].join('&')
+    'app=sh3',
+    'action=' + encodeURIComponent(actions),
+    'v=' + encodeURIComponent(version),
+    'os=' + process.platform,
+    'sid=' + encodeURIComponent(session_id),
+    '_r=' + Math.random()
+  ].join('&')
 
   console.log('stat: ' + actions)
   request
@@ -52,7 +52,7 @@ function initGetPrefCfg () {
   return getPref()
     .then(v => v.send_usage_data)
     .then(v => {
-      send_usage_data = (v !== false)
+      send_usage_data = (v === true)
     })
 }
 

File diff suppressed because it is too large
+ 0 - 0
app/ui/app.js


+ 1 - 1
app/version.js

@@ -1 +1 @@
-module.exports = [3, 5, 3, 5506]
+module.exports = [3, 5, 3, 5510]

+ 7 - 7
package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "switchhosts",
-  "version": "3.5.2",
+  "version": "3.5.3",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -9481,9 +9481,9 @@
       },
       "dependencies": {
         "core-js": {
-          "version": "3.4.2",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.4.2.tgz",
-          "integrity": "sha512-bUTfqFWtNKWp73oNIfRkqwYZJeNT3lstzZcAkhhiuvDraRSgOH1/+F9ZklbpR4zpdKuo4cpXN8tKP7s61yjX+g==",
+          "version": "3.4.5",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.4.5.tgz",
+          "integrity": "sha512-OuvejWH6vIaUo59Ndlh89purNm4DCIy/v3QoYlcGnn+PkYI8BhNHfCuAESrWX+ZPfq9JccVJ+XXgOMy77PJexg==",
           "dev": true,
           "optional": true
         },
@@ -15888,9 +15888,9 @@
       }
     },
     "sumchecker": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.0.tgz",
-      "integrity": "sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
+      "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
       "dev": true,
       "requires": {
         "debug": "^4.1.0"

Some files were not shown because too many files changed in this diff