Skip to content

Commit dddcc9b

Browse files
author
Sami Kolari
committed
users page + analytics event tracking
1 parent ddd3328 commit dddcc9b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+988
-98
lines changed

public/img/users/TMAlogo.png

8.78 KB

public/img/users/abb.png

4.39 KB

public/img/users/accruent.png

14.3 KB

public/img/users/adwisit.png

12.2 KB

public/img/users/alfastrahovanie.png

6.04 KB

public/img/users/alpha.png

10.2 KB

public/img/users/altran.png

12.3 KB

public/img/users/axon.png

8.97 KB

public/img/users/cenx.png

3.49 KB

public/img/users/cisco.jpg

11.9 KB

public/img/users/condenast.png

7 KB

public/img/users/etteplan.png

8.04 KB

public/img/users/ficosa.png

9.79 KB

public/img/users/finnair.png

11.2 KB

public/img/users/flipdish.png

54.3 KB

public/img/users/heymath.png

22.8 KB

public/img/users/juniper.png

29.2 KB

public/img/users/kistler.svg

+362

public/img/users/kone.png

1.83 KB

public/img/users/log.png

339 KB

public/img/users/lucid.png

15.9 KB

public/img/users/metso.png

5.46 KB

public/img/users/mews.png

17.8 KB

public/img/users/nokia.png

2.98 KB

public/img/users/nrl.png

7.85 KB

public/img/users/open_drives.png

30.3 KB

public/img/users/opendaylight.png

8.96 KB

public/img/users/opuscapita.png

4.39 KB

public/img/users/oriental.png

8.81 KB

public/img/users/qahive.png

3.09 KB

public/img/users/rocla.png

1.3 KB

public/img/users/ryerson.png

6.88 KB

public/img/users/salicru.png

4.11 KB

public/img/users/segron.png

8.24 KB

public/img/users/spectrum.png

8.24 KB

public/img/users/steeri.png

2.79 KB

public/img/users/testmo.png

25.9 KB

public/img/users/vero.png

14.8 KB

public/img/users/wartsila.png

16.3 KB

public/img/users/zilogic.png

5.66 KB

public/img/users/zymr.png

7.78 KB

public/index.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
<meta name="viewport" content="width=device-width,initial-scale=1.0">
77
<meta name=description content="Generic open source automation framework for acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA).">
88
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
9-
<script defer data-domain="robotframework.org" src="https://plausible.io/js/plausible.js"></script>
9+
<script defer data-domain="robotframework.org" src="https://plausible.io/js/plausible.hash.outbound-links.js"></script>
10+
<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
1011
<!-- <script type="text/javascript">
1112
var _jipt = [];
1213
_jipt.push(['project', 'ddd00e482856bb264959ae8e3d51e4b6']);

src/App.vue

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<template>
2-
<div ref="root">
3-
<router-view />
4-
</div>
2+
<router-view v-slot="{ Component }">
3+
<transition name="opacity" mode="out-in">
4+
<component :is="Component" />
5+
</transition>
6+
</router-view>
57
</template>
68

79
<script>

src/assets/css/elements.css

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ button.theme, button.stroke {
5656
button.theme {
5757
color: var(--color-black);
5858
background-color: var(--color-white);
59-
box-shadow: 2px 4px 2px 0px rgba(0,0,0,0.15);
59+
box-shadow: 2px 4px 3px -1px rgba(0,0,0,0.1),
60+
6px 6px 15px -1px rgba(0,0,0,0.04);
6061
}
6162
button.stroke {
6263
color: var(--color-white);

src/assets/css/transitions.css

+6-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
transition: transform 0.25s, opacity 0.15s;
1212
transition-timing-function: cubic-bezier(0.14, 0.7, 0.56, 0.92);
1313
}
14+
.opacity-slow-enter-active,
15+
.opacity-slow-leave-active {
16+
transition: opacity 0.3s;
17+
}
1418

1519
.fade-enter-from, .fade-leave-to {
1620
opacity: 0;
@@ -28,6 +32,7 @@
2832
opacity: 0;
2933
transform: translateY(10px) !important;
3034
}
31-
.opacity-enter-from, .opacity-leave-to {
35+
.opacity-enter-from, .opacity-leave-to,
36+
.opacity-slow-enter-from, .opacity-slow-leave-to {
3237
opacity: 0;
3338
}

src/components/CompanyCarousel.vue

+17-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
:class="$store.state.isMobile ? 'mb-medium' : ''">
1818
<div
1919
class="img-container"
20-
:style="`background-image: url(${publicPath}img/companies/${activeCompany.imgName})`" />
20+
:style="`background-image: url(${publicPath}img/carousel-company-icons/${activeCompany.imgName})`" />
2121
</div>
2222
<div
2323
class="col-sm-12 col-md-9 type-italic type-small description"
@@ -31,15 +31,18 @@
3131
<chevron-icon direction="right" :size="48" />
3232
</button>
3333
</div>
34-
<div class="row mt-2xsmall">
34+
<div class="row">
3535
<button
3636
v-for="(company, i) in companiesShuffled"
3737
:key="company.name"
3838
:aria-label="`${company.name} testimonial`"
39-
:style="`background-image: url(${publicPath}img/companies/${company.imgName})`"
40-
class="img-container-small mr-small mr-small bg-white card mb-small"
39+
:style="`background-image: url(${publicPath}img/carousel-company-icons/${company.imgName})`"
40+
class="img-container-small mr-small mr-small bg-white card mt-2xsmall"
4141
:class="activeCompanyIndex === i ? 'logo-active border-black border-thin' : ''"
4242
@click="activeCompanyIndex = i" />
43+
<router-link :to="{ name: 'Users' }" class="card pl-small pr-small color-grey-dark mt-2xsmall" style="line-height: 1.85;">
44+
More users
45+
</router-link>
4346
</div>
4447
</div>
4548
</template>
@@ -56,7 +59,8 @@ export default {
5659
activeCompanyIndex: 0,
5760
publicPath: process.env.BASE_URL,
5861
direction: 0,
59-
companiesShuffled: []
62+
companiesShuffled: [],
63+
eventSent: false
6064
}),
6165
computed: {
6266
activeCompany() {
@@ -78,6 +82,14 @@ export default {
7882
}
7983
}
8084
},
85+
watch: {
86+
activeCompanyIndex() {
87+
if (!this.eventSent) {
88+
window.plausible('Interact', { props: { element: 'Testimonials' } })
89+
this.eventSent = true
90+
}
91+
}
92+
},
8193
created() {
8294
const companies = this.$tm('introduction.companies')
8395
for (let i = companies.length - 1; i > 0; i--) {

src/components/NavMobile.vue

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
<div v-if="!linksOpen" key="1" class="pl-2xsmall">
88
<div
99
v-for="item in $tm('navbar.items')"
10-
:key="item">
10+
:key="item.name">
1111
<button
12-
:name="`go-to-${item}`"
12+
:name="`go-to-${item.name}`"
1313
class="mb-small mt-xsmall color-white font-title type-uppercase"
14-
@click="scrollTo(item, 400); isOpen = false">
15-
{{ item }}
14+
@click="scrollTo(item.id, 400); isOpen = false">
15+
{{ item.name }}
1616
</button>
1717
</div>
1818
<button
@@ -99,7 +99,7 @@ export default {
9999
t2 -= 1
100100
return (-c / 2) * (t2 * (t2 - 2) - 1) + b
101101
}
102-
const to = document.getElementById(el.toLowerCase().replaceAll(' ', '-')).offsetTop - 80
102+
const to = document.getElementById(el).offsetTop - 80
103103
const element = document.scrollingElement || document.documentElement
104104
const start = element.scrollTop
105105

src/components/Navbar.vue

+8-6
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
<!-- section navigation -->
77
<button
88
v-for="item in $tm('navbar.items')"
9-
:key="item"
10-
:name="`go-to-${item}`"
9+
:key="item.name"
10+
:name="`go-to-${item.name}`"
1111
class="pl-small pr-small color-white font-title type-uppercase type-no-underline border-right-white"
12-
@click="scrollTo(item)">
13-
{{ item }}
12+
@click="itemClick(item.id)">
13+
{{ item.name }}
1414
</button>
1515
<!-- external links -->
1616
<div class="relative" ref="dropdown">
@@ -102,13 +102,15 @@ export default {
102102
}
103103
},
104104
methods: {
105-
scrollTo(item) {
106-
const el = document.getElementById(item.toLowerCase().replaceAll(' ', '-'))
105+
itemClick(itemId) {
106+
const el = document.getElementById(itemId)
107107
if (!el) return
108+
// window.history.replaceState(null, null, `?section=${itemId}`)
108109
window.scrollTo({
109110
top: el.offsetTop - 74,
110111
behavior: 'smooth'
111112
})
113+
window.plausible('Nav click', { props: { section: itemId } })
112114
},
113115
setLang(lang) {
114116
this.$i18n.locale = lang

src/components/PageSection.vue

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<template>
22
<div
33
class="border-top-theme mt-xlarge"
4-
:id="title.toLowerCase().replaceAll(' ', '-')"
54
tabindex="-1">
65
<div class="row p-small">
76
<div

src/components/PageSectionTwitter.vue

+5-3
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<div
1414
class="col-sm-12 col-lg-6"
1515
:class="!$store.state.isMobile ? 'pr-large' : ''"
16-
ref="body"
17-
id="asd">
16+
style="height: fit-content;"
17+
ref="body">
1818
<p v-html="body" />
1919
<slot />
2020
</div>
@@ -61,7 +61,9 @@ export default {
6161
setTimeout(() => {
6262
this.twitterHeight = this.$refs.body.offsetHeight - 32
6363
}, 200)
64-
window.addEventListener('resize', () => { this.twitterHeight = this.$refs.body.offsetHeight - 16 })
64+
window.addEventListener('resize', () => {
65+
this.twitterHeight = this.$refs.body.offsetHeight - 32
66+
})
6567
}
6668
}
6769
</script>

src/components/ResourceBox.vue

+12-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,8 @@ export default {
170170
tagsDropdownShown: false,
171171
filterInput: '',
172172
showAll: false,
173-
stars: []
173+
stars: [],
174+
eventSent: false
174175
}),
175176
computed: {
176177
tableHeaders() {
@@ -227,6 +228,16 @@ export default {
227228
this.filterInput = ''
228229
if (this.activeTab !== 'builtin') this.sortBy = 'Stars'
229230
else this.sortBy = 'Name'
231+
if (!this.eventSent) {
232+
window.plausible('Interact', { props: { element: 'Resources' } })
233+
this.eventSent = true
234+
}
235+
},
236+
showAll() {
237+
if (!this.eventSent) {
238+
window.plausible('Interact', { props: { element: 'Resources' } })
239+
this.eventSent = true
240+
}
230241
}
231242
},
232243
methods: {

src/components/TabBox.vue

+10-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ export default {
5858
}
5959
},
6060
data: () => ({
61-
activeTabIndex: 0
61+
activeTabIndex: 0,
62+
eventSent: false
6263
}),
6364
computed: {
6465
activeTab() {
@@ -74,6 +75,14 @@ export default {
7475
el.innerHTML = this.activeTab.description
7576
return Array.from(el.content.children).map((child) => child.outerHTML)
7677
}
78+
},
79+
watch: {
80+
activeTab() {
81+
if (!this.eventSent) {
82+
window.plausible('Interact', { props: { element: 'Learning' } })
83+
this.eventSent = true
84+
}
85+
}
7786
}
7887
}
7988
</script>

src/content/english.js

+23-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,22 @@ export default () => ({
33
newsBanner: '🎉 New website has been released!',
44
navbar: {
55
items: [
6-
'Introduction',
7-
'Getting started',
8-
'Community',
9-
'Resources'
6+
{
7+
name: 'Introduction',
8+
id: 'introduction'
9+
},
10+
{
11+
name: 'Getting started',
12+
id: 'getting-started'
13+
},
14+
{
15+
name: 'Community',
16+
id: 'community'
17+
},
18+
{
19+
name: 'Resources',
20+
id: 'resources'
21+
}
1022
],
1123
dropdownName: 'Links',
1224
dropdown: [
@@ -254,5 +266,12 @@ Welcome Page Should Be Open
254266
'Standard',
255267
'External'
256268
]
269+
},
270+
usersPage: {
271+
title: 'Users of Robot Framework',
272+
body: `If you'd like your company added here, please submit a
273+
<a href="https://github.com/robotframework/robotframework.github.com/pulls">pull request</a> or an
274+
<a href="https://github.com/robotframework/robotframework.github.com/issues">issue</a>.`
275+
// list of users is found in ./resources/users.js
257276
}
258277
})

src/content/index.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import libraries from './resources/libraries.js'
1212
import tools from './resources/tools.js'
1313
import learning from './resources/learning.js'
1414
import stars from './resources/stars.js'
15+
import users from './resources/users.js'
1516

1617
export {
1718
english,
@@ -27,5 +28,6 @@ export {
2728
libraries,
2829
tools,
2930
learning,
30-
stars
31+
stars,
32+
users
3133
}

src/content/resources/libraries.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,8 @@ export default () => ([
257257
{
258258
name: 'WADLibrary',
259259
href: 'https://github.com/Adwisit/WADLibrary',
260-
description: 'Application testing library that utilizes Win App Driver.'
260+
description: 'Application testing library that utilizes Win App Driver.',
261+
tags: ['windows']
261262
},
262263
{
263264
name: 'Zoomba Library',
@@ -287,6 +288,12 @@ export default () => ([
287288
name: 'Plone.app .robotframework',
288289
href: 'https://github.com/plone/plone.app.robotframework/',
289290
description: 'Provides resources and tools for writing functional Selenium tests for Plone CMS and its add-ons.',
290-
tags: ['tools']
291+
tags: ['selenium']
292+
},
293+
{
294+
name: 'WatchUI',
295+
href: 'https://github.com/Tesena-smart-testing/WatchUI',
296+
description: 'Visual testing library for visual difference testing as well as image content testing (including PDF documents). Runs on Selenium to generate screenshots, uses PyMuPDF to process PDFs and Tesseract OCR to recognize text.',
297+
tags: ['ui']
291298
}
292299
])

0 commit comments

Comments
 (0)