[IMP] web_pwa_oca: Port changes from 12.0

This commit is contained in:
Alexandre D. Díaz
2021-03-16 19:35:31 +01:00
committed by sergio-teruel
parent c1afeed3c1
commit 1194498f2e
29 changed files with 1191 additions and 543 deletions

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<data>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.pwa</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form" />
<field name="arch" type="xml">
<div id="emails" position='after'>
<h2>Progressive Web App</h2>
<div class="row mt16 o_settings_container" id="pwa_settings">
<div class="col-12 col-lg-6 o_setting_box" id="domain_setting">
<div class="o_setting_right_pane">
<label for="pwa_name" string="PWA Title" />
<span class="fa fa-lg fa-globe" />
<div class="text-muted">
Name and icon of your PWA
</div>
<div class="content-group">
<div class="row mt16">
<label
class="col-lg-3 o_light_label"
string="Name"
for="pwa_name"
/>
<field name="pwa_name" />
</div>
<div class="row mt16">
<label
class="col-lg-3 o_light_label"
string="Short Name"
for="pwa_short_name"
/>
<field name="pwa_short_name" />
</div>
<div class="row">
<label
class="col-lg-3 o_light_label"
for="pwa_background_color"
/>
<field name="pwa_background_color" />
</div>
<div class="row">
<label
class="col-lg-3 o_light_label"
for="pwa_theme_color"
/>
<field name="pwa_theme_color" />
</div>
<div class="row">
<label
class="col-lg-3 o_light_label"
for="pwa_icon"
/>
<field
name="pwa_icon"
widget="image"
class="float-left oe_avatar"
/>
</div>
</div>
</div>
</div>
</div>
</div>
</field>
</record>
</data>
</odoo>

View File

@@ -1,109 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="web_layout_pwa" name="Web layout PWA" inherit_id="web.layout">
<xpath expr="//meta[@name='viewport']" position="after">
<!-- Add link rel manifest -->
<link rel="manifest" href="/web_pwa_oca/manifest.json" />
<!-- Add iOS meta tags and icons -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="apple-mobile-web-app-title" content="Odoo PWA" />
<link
rel="apple-touch-icon"
href="/web_pwa_oca/static/img/icons/icon-152x152.png"
/>
<!-- Add meta theme-color -->
<meta name="theme-color" content="#2E69B5" />
</xpath>
</template>
<template id="assets_backend" name="PWA assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script
type="text/javascript"
src="/web_pwa_oca/static/src/js/pwa_install.js"
/>
</xpath>
</template>
<template id="service_worker" name="PWA service worker">
'use strict';
const CACHE_NAME = '<t t-esc="pwa_cache_name" />';
const FILES_TO_CACHE = [
<t t-foreach="pwa_files_to_cache" t-as="file_to_cache">
'<t t-esc="file_to_cache" />',
</t>
];
self.addEventListener('install', function (evt) {
console.log('[ServiceWorker] Install');
evt.waitUntil(
caches.open(CACHE_NAME).then(function (cache) {
console.log('[ServiceWorker] Pre-caching offline page');
return cache.addAll(FILES_TO_CACHE);
})
);
self.skipWaiting();
});
self.addEventListener('activate', function(evt) {
console.log('[ServiceWorker] Activate');
evt.waitUntil(
caches.keys().then(function(keyList) {
return Promise.all(keyList.map(function(key) {
if (key !== CACHE_NAME) {
console.log('[ServiceWorker] Removing old cache', key);
return caches.delete(key);
}
}));
})
);
self.clients.claim();
});
self.addEventListener('fetch', function(evt) {
if (evt.request.cache === 'only-if-cached' &amp;&amp; evt.request.mode !== 'same-origin') {
return;
}
console.log('[ServiceWorker] Fetch', evt.request.url);
evt.respondWith(
caches.open(CACHE_NAME).then(function(cache) {
return cache.match(evt.request)
.then(function(response) {
return response || fetch(evt.request);
});
})
);
});
</template>
<template id="manifest" name="PWA manifest">
{
"name": "<t t-esc="pwa_name" />",
"short_name": "<t t-esc="pwa_short_name" />",
"icons": [{
"src": "<t t-esc="icon128x128" />",
"sizes": "128x128",
"type": "image/png"
}, {
"src": "<t t-esc="icon144x144" />",
"sizes": "144x144",
"type": "image/png"
}, {
"src": "<t t-esc="icon152x152" />",
"sizes": "152x152",
"type": "image/png"
}, {
"src": "<t t-esc="icon192x192" />",
"sizes": "192x192",
"type": "image/png"
}, {
"src": "<t t-esc="icon256x256" />",
"sizes": "256x256",
"type": "image/png"
}, {
"src": "<t t-esc="icon512x512" />",
"sizes": "512x512",
"type": "image/png"
}],
"start_url": "/web",
"display": "standalone",
"background_color": "<t t-esc="background_color" />",
"theme_color": "<t t-esc="theme_color" />"
}
</template>
</odoo>