| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /**
- * @author oldj
- * @blog https://oldj.net
- */
- 'use strict'
- import Agent from '../Agent'
- const save = require('./save')
- module.exports = (app, hosts) => {
- hosts.on = !hosts.on
- let lang = app.state.lang
- return Agent.pact('getPref')
- .then(pref => {
- let list = app.state.list.slice(0)
- let is_single = pref.choice_mode === 'single'
- if (is_single && hosts.on) {
- list.map(item => {
- if (item.id !== hosts.id) {
- item.on = false
- }
- })
- }
- return list
- })
- .then(list => {
- let idx = list.findIndex(item => item.id === hosts.id)
- if (idx === -1) {
- list.push(Object.assign({}, hosts))
- } else {
- let old_hosts = list[idx]
- list.splice(idx, 1, Object.assign({}, old_hosts, hosts))
- }
- return save(app, list, hosts)
- })
- .then(() => {
- Agent.pact('statRecord', 'switch')
- return Agent.pact('notify', 'SwitchHosts!', lang.hosts_switched)
- })
- }
|