Skip to content

Commit

Permalink
fix: expand status changed can not be stored & show more button display
Browse files Browse the repository at this point in the history
  • Loading branch information
cnwangjie committed Nov 3, 2018
1 parent 45f13ac commit 6375583
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 22 deletions.
3 changes: 3 additions & 0 deletions src/_locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@
"opt_desc_openTabListNoTab": {
"message": "Open the tab list when store all tabs"
},
"opt_desc_listsPerPage": {
"message": "Number of lists per page"
},
"opt_label_popup": {
"message": "Popup simple list"
},
Expand Down
3 changes: 3 additions & 0 deletions src/_locales/zh_CN/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@
"opt_desc_openTabListNoTab": {
"message": "当储存所有标签时打开标签列表"
},
"opt_desc_listsPerPage": {
"message": "每页的列表数量"
},
"opt_label_popup": {
"message": "弹出简单列表"
},
Expand Down
2 changes: 2 additions & 0 deletions src/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import storage from './common/storage'
import options from './common/options'
import migrate from './common/migrate'
import boss from './common/service/boss'
import listManger from './common/listManager'
import browser from 'webextension-polyfill'


Expand Down Expand Up @@ -212,6 +213,7 @@ const commandHandler = async command => {
}

const init = async () => {
await listManger.init()
const opts = window.opts = await storage.getOptions() || {}
_.defaults(opts, options.getDefaultOptions())
await storage.setOptions(opts)
Expand Down
1 change: 0 additions & 1 deletion src/common/listManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ const compressOps = ops => {
const removed = []
const updated = {}
const finalOps = []
console.log(ops)
for (let i = ops.length - 1; i > -1; i -= 1) {
const op = ops[i]
// ignore all actions for the list if that list will be removed finally
Expand Down
16 changes: 8 additions & 8 deletions src/common/service/boss.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
import {isBackground} from '../utils'
import browser from 'webextension-polyfill'

const apiUrl = 'http://127.0.0.1:3000'
const apiUrl = 'http://127.0.0.1:3000' // TODO: use online address

const hasToken = async () => TOKEN_KEY in await browser.storage.local.get(TOKEN_KEY)

Expand Down Expand Up @@ -107,15 +107,15 @@ const uploadOperations = async () => {

const applyRemoteLists = async () => {
const lists = await getLists()
const {listsUpdatedAt} = browser.storage.local.set({lists})
return Date.parse(listsUpdatedAt)
await browser.storage.local.set({lists})
return getInfo()
}

const uploadOpts = async () => {
const {opts} = await browser.storage.local.get('opts')
const optsUpdatedAt = await setOpts(opts)
await browser.storage.local.set({optsUpdatedAt})
return Date.parse(optsUpdatedAt)
const result = await setOpts(opts)
result.optsUpdatedAt = Date.parse(result.optsUpdatedAt)
return result
}

const applyRemoteOpts = async () => {
Expand All @@ -141,12 +141,12 @@ const refresh = async () => {
}
// apply remote lists if remote lists update time later than local
if (remoteInfo.listsUpdatedAt > localInfo.listsUpdatedAt) {
const listsUpdatedAt = await applyRemoteLists()
const {listsUpdatedAt} = await applyRemoteLists()
await browser.storage.local.set({listsUpdatedAt})
}

if (localInfo.optsUpdatedAt > remoteInfo.optsUpdatedAt) {
const optsUpdatedAt = await uploadOpts()
const {optsUpdatedAt} = await uploadOpts()
await browser.storage.local.set({optsUpdatedAt})
} else if (localInfo.optsUpdatedAt < remoteInfo.optsUpdatedAt) {
await applyRemoteOpts()
Expand Down
2 changes: 1 addition & 1 deletion src/common/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ export const genObjectId = () => {
return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => (Math.random() * 16 | 0).toString(16)).toLowerCase()
}
export const isBackground = async () => {
if (window._isBackground != null) window._isBackground = window === await browser.runtime.getBackgroundPage()
if (window._isBackground == null) window._isBackground = window === await browser.runtime.getBackgroundPage()
return window._isBackground
}
19 changes: 8 additions & 11 deletions src/component/main/Toolbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
<v-tooltip left>
<v-btn slot="activator" icon dark :loading="syncing" :disabled="!online" @click="syncBtnClicked">
<transition name="fade" mode="out-in">
<v-icon v-if="uploadSuccess" key="success">cloud_done</v-icon>
<v-icon v-else="!uploadSuccess" key="normal">{{ syncIcon }}</v-icon>
<v-icon :key="syncIcon">{{ syncIcon }}</v-icon>
</transition>
</v-btn>
<span>{{ tooltip }}<dynamic-time v-if="!tooltip" v-model="lastUpdated"></dynamic-time></span>
Expand All @@ -24,7 +23,6 @@
</v-toolbar>
</template>
<script>
import _ from 'lodash'
import __ from '@/common/i18n'
import searchForm from './SearchForm'
import dynamicTime from '@/component/DynamicTime'
Expand All @@ -48,7 +46,7 @@ export default {
computed: {
...mapState(['opts', 'hasToken', 'conflict', 'nightmode']),
tooltip() {
return !this.online ? __('ui_offline')
return !this.online ? __('ui_offline') // eslint-disable-line
: !this.hasToken ? __('ui_not_login') // eslint-disable-line
: this.syncing ? __('ui_syncing')
// : this.conflict ? __('ui_conflict')
Expand All @@ -57,9 +55,9 @@ export default {
: __('ui_refresh')
},
syncIcon() {
return !this.online ? 'offline_bolt'
: !this.hasToken ? 'cloud_off'
// : this.uploadSuccess ? 'cloud_done'
return !this.online ? 'cloud_off' // eslint-disable-line
: !this.hasToken ? 'cloud_off' // eslint-disable-line
: this.uploadSuccess ? 'cloud_done'
: 'cloud_upload'
},
},
Expand All @@ -72,16 +70,15 @@ export default {
...mapMutations(['setConflict']),
init() {
this.onScroll()
window.addEventListener('online', () => this.online = true)
window.addEventListener('offline', () => this.online = false)
window.addEventListener('online', () => { this.online = true })
window.addEventListener('offline', () => { this.online = false })
chrome.runtime.onMessage.addListener(msg => {
console.log(msg)
if (msg.refresh) {
this.syncing = true
} else if (msg.refreshed) {
this.syncing = false
this.uploadSuccess = true
setTimeout(() => this.uploadSuccess = false, 3000)
setTimeout(() => { this.uploadSuccess = false }, 3000)
}
})
},
Expand Down
2 changes: 1 addition & 1 deletion src/page/main/DetailList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@
</v-list-tile-sub-title>
</v-list-tile-content>
</v-list-tile>
<v-layout v-if="list.tabs.length > 9 && !list.showAll">
<v-layout v-if="list.tabs.length > 10 && !list.showAll">
<v-flex class="text-xs-center">
<v-btn small flat @click="showAll(listIndex)"><v-icon>more_horiz</v-icon></v-btn>
</v-flex>
Expand Down

0 comments on commit 6375583

Please sign in to comment.