1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 02:09:32 +02:00

Add browser icons. Currently requires stf-browser-db to be npm linked to work.

This commit is contained in:
Simo Kinnunen 2014-05-08 18:58:13 +09:00
parent 76b9555f4a
commit 0c24cb7ec6
7 changed files with 68 additions and 31 deletions

View file

@ -0,0 +1,8 @@
var express = require('express')
var pathutil = require('../util/pathutil')
module.exports = function(options) {
return express.static(
pathutil.root('node_modules/stf-browser-db/dist'))
}

View file

@ -0,0 +1,8 @@
var express = require('express')
var pathutil = require('../util/pathutil')
module.exports = function(options) {
return express.static(
pathutil.root('node_modules/stf-devices-db/data/small'))
}

View file

@ -22,6 +22,8 @@ var datautil = require('../util/datautil')
var auth = require('../middleware/auth') var auth = require('../middleware/auth')
var webpack = require('../middleware/webpack') var webpack = require('../middleware/webpack')
var deviceIconMiddleware = require('../middleware/deviceicons')
var browserIconMiddleware = require('../middleware/browsericons')
module.exports = function(options) { module.exports = function(options) {
var log = logger.createLogger('app') var log = logger.createLogger('app')
@ -55,7 +57,8 @@ module.exports = function(options) {
app.use('/static/bower_components', app.use('/static/bower_components',
express.static(pathutil.resource('bower_components'))) express.static(pathutil.resource('bower_components')))
app.use('/static/data', express.static(pathutil.resource('data'))) app.use('/static/data', express.static(pathutil.resource('data')))
app.use('/static/devices', datautil.middleware()) app.use('/static/browsers', browserIconMiddleware())
app.use('/static/devices', deviceIconMiddleware())
app.use('/static', express.static(pathutil.resource('app'))) app.use('/static', express.static(pathutil.resource('app')))
app.use(express.favicon(pathutil.resource( app.use(express.favicon(pathutil.resource(
@ -347,10 +350,10 @@ module.exports = function(options) {
.on(wire.DeviceBrowserMessage, function(channel, message) { .on(wire.DeviceBrowserMessage, function(channel, message) {
var serial = message.serial var serial = message.serial
delete message.serial delete message.serial
socket.emit('device.change', { socket.emit('device.change', datautil.applyBrowsers({
serial: serial serial: serial
, browser: message , browser: message
}) }))
}) })
.on(wire.ConnectivityEvent, function(channel, message) { .on(wire.ConnectivityEvent, function(channel, message) {
var serial = message.serial var serial = message.serial

View file

@ -1,24 +1,21 @@
var syrup = require('syrup') var syrup = require('syrup')
var browsers = require('stf-browser-db')
var logger = require('../../../util/logger') var logger = require('../../../util/logger')
var wire = require('../../../wire') var wire = require('../../../wire')
var wireutil = require('../../../wire/util') var wireutil = require('../../../wire/util')
var mapping = { var mapping = (function() {
'com.android.chrome': 'chrome' var list = Object.create(null)
, 'com.chrome.beta': 'chrome-beta' Object.keys(browsers).forEach(function(id) {
, 'com.sec.android.app.sbrowser': 'samsung-chrome' var browser = browsers[id]
, 'com.android.browser': 'android' if (browser.platforms.android) {
, 'org.mozilla.firefox': 'firefox' list[browser.platforms.android.package] = id
, 'org.mozilla.firefox_beta': 'firefox-beta' }
, 'com.opera.browser': 'opera' })
, 'com.opera.mini.android': 'opera-mini' return list
, 'com.opera.browser.beta': 'opera-beta' })()
, 'com.UCMobile.intl': 'uc'
, 'com.explore.web.browser': 'lightning'
, 'com.baidu.browser.inter': 'baidu'
, 'com.tencent.ibibo.mtt': 'one'
}
module.exports = syrup.serial() module.exports = syrup.serial()
.dependency(require('../support/router')) .dependency(require('../support/router'))
@ -33,11 +30,17 @@ module.exports = syrup.serial()
} }
function processApp(app) { function processApp(app) {
var packageName = pkg(app.component)
var browserId = mapping[packageName]
if (!browserId) {
throw new Error(util.format('Unmapped browser "%s"', packageName))
}
return { return {
id: app.component id: app.component
, type: mapping[pkg(app.component)] || , type: browserId
app.name.toLowerCase().replace(/\s+/g, '-') , name: browsers[browserId].name
, name: app.name
, selected: app.selected , selected: app.selected
, system: app.system , system: app.system
} }

View file

@ -1,4 +1,5 @@
var deviceData = require('stf-devices-db') var deviceData = require('stf-devices-db')
var browserData = require('stf-browser-db')
var express = require('express') var express = require('express')
var pathutil = require('./pathutil') var pathutil = require('./pathutil')
@ -53,6 +54,18 @@ datautil.applyData = function(device) {
return device return device
} }
datautil.applyBrowsers = function(device) {
if (device.browser) {
device.browser.apps.forEach(function(app) {
var data = browserData[app.type]
if (data) {
app.developer = data.developer
}
})
}
return device
}
datautil.applyOwner = function(device, user) { datautil.applyOwner = function(device, user) {
device.using = !!device.owner && device.owner.email === user.email device.using = !!device.owner && device.owner.email === user.email
return device return device
@ -60,12 +73,9 @@ datautil.applyOwner = function(device, user) {
datautil.normalize = function(device, user) { datautil.normalize = function(device, user) {
datautil.applyData(device) datautil.applyData(device)
datautil.applyBrowsers(device)
datautil.applyOwner(device, user) datautil.applyOwner(device, user)
if (!device.present) { if (!device.present) {
device.owner = null device.owner = null
} }
} }
datautil.middleware = function() {
return express.static(pathutil.root('node_modules/stf-devices-db/data/small'))
}

View file

@ -14,3 +14,8 @@ module.exports.resource = function(target) {
module.exports.vendor = function(target) { module.exports.vendor = function(target) {
return path.resolve(__dirname, '../../vendor', target) return path.resolve(__dirname, '../../vendor', target)
} }
// Export
module.exports.module = function(target) {
return path.resolve(__dirname, '../../node_modules', target)
}

View file

@ -26,15 +26,15 @@
li li
a(ng-click='clearHistory()', type='button', translate).btn-link Clear a(ng-click='clearHistory()', type='button', translate).btn-link Clear
.btn-group .btn-group(ng-if='$root.browser')
button.btn.btn-smx.btn-default-outline.dropdown-toggle button.btn.btn-smx.btn-default-outline.dropdown-toggle
//img(ng-src='/img/platforms/{{$root.browser}}.png').browser-icon img(ng-src='/static/browsers/icon/16x16/{{$root.browser.type}}.png').browser-icon
//| {{$root.browser | browserName}} //| {{$root.browser | browserName}}
span(ng-show='$root.browser') {{$root.browser.name}} ({{$root.browser.type}}) span(ng-show='$root.browser') {{$root.browser.name}} ({{$root.browser.developer}})
span.caret(ng-show='device.browser.apps.length > 1') span.caret(ng-show='device.browser.apps.length > 1')
ul.dropdown-menu(ng-show='device.browser.apps.length > 1') ul.dropdown-menu(ng-show='device.browser.apps.length > 1')
li(ng-repeat='b in device.browser.apps') li(ng-repeat='b in device.browser.apps')
a(ng-click='$root.browser = b').pointer a(ng-click='$root.browser = b').pointer
span {{b.name}} ({{b.type}}) img(ng-src='/static/browsers/icon/16x16/{{b.type}}.png').browser-icon.pointer
//img(ng-src='/img/platforms/{{b}}.png').browser-icon.pointer span {{b.name}} ({{b.developer}})
//| {{ b | browserName }} //| {{ b | browserName }}