.avada-db-table ol { margin-top: 0px; margin-bottom: 0px; } .avada-db-table tr textarea { width: 100%; height: 150px; } .awb-critical-hero { display: flex; align-items: center; } .awb-critical-hero form { width: 33.33%; flex-shrink: 0; padding-left: 2.8em; position: relative; } .awb-critical-hero form select, .awb-critical-hero form input { width: 100% !important; } .awb-critical-hero form select { margin: 0 0 1em 0 !important; } .avada-db-create-form .pyre_desc { display: none; } .avada-db-create-form .pyre_field { width: 100% !important; float: none !important; } .pyre_metabox_field { display: none; border: none !important; } .awb-critical-hero .pyre_field .select2-selection--multiple .select2-search__field { margin-bottom: 5px; padding-left: 7px; } .awb-critical-hero .pyre_field .select2-container .select2-selection > .select2-selection__rendered { margin-right: 0; } .awb-critical-hero .pyre_field .select2-selection--multiple { display: flex; } .awb-critical-hero .pyre_metabox_field { padding-top: 0; } .awb-critical-loader { align-items: center; display: none; } .awb-critical-loader .loading-message { margin-left: 0.7em; } .awb-critical-loader .avada-db-loader { display: block; } input[type="submit"].processing { display: none; } input[type="submit"].processing + .awb-critical-loader { display: flex; } #awb-critical-css .wp-list-table tr.processing { opacity: 0.5; pointer-events: none; } /* Regenerate button */ .awb-update-row .awb-spinner { display: inline-block; margin-right: 5px; background: none; flex-shrink: 0; margin-top: 0; border-radius: 50%; line-height: 1 !important; border: none; width: 1em; height: 1em; box-sizing: border-box; } .awb-update-row .awb-spinner i { font-size: 0.85em; } .awb-update-row.processing .awb-spinner { border: 3px solid rgba(0, 0, 0, 0.2); border-bottom: 3px solid #333; animation: avada-rotate 0.8s infinite linear; } .awb-update-row.processing .awb-spinner i{ visibility: hidden; } /* Modal */ #wpwrap .avada-db-critical .awb-admin-modal-wrap { top: 40%; transform: translateY(-50%); } .awb-admin-modal-wrap .awb-admin-modal-content { padding: 20px 20px 30px 20px; } .awb-admin-modal-wrap .awb-critical-css-modal-title { margin-bottom: 20px; } .awb-admin-modal-wrap .awb-critical-css-modal-title i { margin-right: 10px; color: #198fd9; } .awb-admin-modal-wrap .awb-critical-css-modal-text { line-height: 1.7; } .awb-admin-modal-wrap .awb-admin-modal-corner-close { border: 1px solid #e8e8e8; }import React, { useEffect, useState } from 'react' import InputWithButton from './InputWithButton' import verifyExtensionsToken from '../../api/verifyExtensionsToken' import ButtonActionProvider from '../Actions/ButtonActionProvider' import { tokenUrl } from '../../utils/linkGenerator' import useGlobalConfig from '../Contexts/useGlobalConfig' import Button from '../Buttons/Button' import styles from './ExtensionsToken.module.scss' /** * Generates a form allowing the user to input an Extensions API token * * @param trackingParams * @param customActionHook * @param completedCallback * @returns {*} * @constructor */ const ExtensionsToken = ({ trackingParams = {}, customActionHook = null, completedCallback = null }) => { const [token, setToken] = useState('') const [error, setError] = useState(null) const [saved, setSaved] = useState(false) const { setSubscriptionStatus } = useGlobalConfig() // Call our completedCallback() after our "saved" state variable is set to true: useEffect(() => { if (saved) { if (completedCallback) { completedCallback() } } }, [saved]) useEffect(() => { // each time our local project name changes we update our saved state to false. setSaved(false) setError(null) }, [token]) const tokenIsCorrectLength = token.length === 36 return ( { // Update local token state value: setToken(e.target.value) }} className={`${styles.input} ${tokenIsCorrectLength ? styles.success : ''}`} spellCheck='false' autoComplete='false' placeholder='Enter token here' /> )} Button={( } LoadingButton={ close
  • Home
  • keyboard_arrow_right Innovazione 2020
  • keyboard_arrow_right Gaetano Di Tondo Olivetti – Digital Field Hack – Tim Wcap & Olivetti

Innovazione 2020

Gaetano Di Tondo Olivetti – Digital Field Hack – Tim Wcap & Olivetti

Saverio Cuoghi 30 Dicembre 2018 34


share close

Il modello dell’industria agroalimentare degli ultimi decenni, ha attinto indiscriminatamente alle limitate risorse naturali del pianeta. La sfida principale del settore agrifood e smart agriculture per il futuro, è dunque quella di ottimizzare e massimizzare il rendimento delle attività di produzione, abbassando i costi, ma soprattutto l’impatto ambientale. Grazie alle nuove tecnologie e alla diffusione di sensori sempre più precisi, ci sono grandi opportunità di sviluppo, ma il settore è ancora caratterizzato da una ridotta presenza di soluzioni digitali.
Ecco perchè, nell’ambito dell’iniziativa Digital Fields, TIM, Olivetti e Future Food Institute, con il patrocinio di CREA e Campagna Amica, organizzano Digital Fields Hack, una maratona non-stop di innovazione e tecnologia, in cui i partecipanti lavorano in team allo sviluppo di soluzioni innovative per il settore agrifood e smart agriculture. Una giuria di esperti valuterà le soluzioni migliori, che si aggiudicheranno premi e opportunità di formazione e di business con le aziende partner.

Rate it
Previous post
Post comments (0)

Leave a reply