Instituto Tecnológico Vale recebe inscrições para programa de mestrado profissional
Recent searches
Quick Links
•
Instituto Tecnológico Vale recebe inscrições para programa de mestrado profissional
Curso é gratuito e oferecido em parceria com a Universidade Federal de Ouro Preto (Ufop)
O Mestrado em Instrumentação, Controle e Automação de Processos de Mineração, coordenado pela Universidade Federal de Ouro Preto (Ufop) e pelo Instituto Tecnológico Vale (ITV), está com inscrições abertas até 18 de novembro de 2022. O programa tem caráter multidisciplinar e interdisciplinar e oferece uma visão ampla sobre ciência e tecnologia e fomenta a sinergia entre o estudo investigativo, o desenvolvimento tecnológico, a inovação e a indústria.
São 19 vagas disponíveis para o público externo e duas adicionais exclusivas para servidores técnico-administrativos da Ufop. Conforme edital, há vagas reservadas para pessoas com deficiência, para negros ou indígenas e para mulheres, como forma de incentivar a inserção de mais mulheres na engenharia.
O mestrado é gratuito e, de acordo com a disponibilidade e ordem de classificação, serão concedidas bolsas aos candidatos de demanda social com dedicação em tempo integral. A seleção ocorrerá por meio de duas provas online (inglês e conhecimentos específicos), de caráter eliminatório e classificatório, e de análise curricular.
O programa visa fomentar a sinergia entre o estudo investigativo, o desenvolvimento tecnológico, a inovação e a indústria (Crédito: Léo Gomes)
O curso é presencial e ministrado em Ouro Preto (MG), com duração de 24 meses. O edital está disponível em http://www.proficam.ufop.br. As inscrições podem ser feitas pelo site www.gestaodeconcursos.com.br.
Media Relations Office - vale
imprensa@vale.com
https://saladeimprensa.vale.com/press-releases
The following has evaluated to null or missing: ==> restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Press topics' or name eq 'Temas de imprensa'&fields=id&restricFields=actions,availableLanguages&page=1&pageSize=1").items [in template "44549#44620#65143" at line 4, column 42] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: pressTopicVocabularyId = restClient.g... [in template "44549#44620#65143" at line 4, column 17] ----
1<#assign
2 images_path = "/documents/d/guest/"
3 namespace = "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_" + stringUtil.randomId()
4 pressTopicVocabularyId = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Press topics' or name eq 'Temas de imprensa'&fields=id&restricFields=actions,availableLanguages&page=1&pageSize=1").items[0].id
5/>
6
7<#function getDisplayPageUrl asset>
8 <#local
9 assetRenderer = asset.getAssetRenderer()
10 baseViewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, asset, !stringUtil.equals(assetLinkBehavior, "showFullContent"))?split("?")?first?split("/-/")?first
11 />
12 <#return baseViewURL?replace(themeDisplay.getURLPortal(), "")/>
13</#function>
14
15<#function getCategoryFilterEndpoint asset>
16 <#local
17 pressTopicCategory = asset.getCategories()?filter(category -> category.getVocabularyId() == pressTopicVocabularyId)?first
18 pressTopicCategoryId = pressTopicCategory.getCategoryId()
19 />
20 <#return "/-/categories/" + pressTopicCategoryId />
21</#function>
22
23<#function getDDMFormFieldsValue DDMFormFieldsReferencesMap DDMFormFieldValuesMap fieldReference>
24 <#local field = DDMFormFieldsReferencesMap[fieldReference].name />
25 <#return DDMFormFieldValuesMap[field][0].getValue().getString(locale)!"" />
26</#function>
27
28<#function getCustomDisplayPageDataAttr customDisplayPageJson categoryFilterEndpoint>
29 <#local
30 groupId = customDisplayPageJson.getLong("groupId")
31 uuid = customDisplayPageJson.getString("id")
32 privateLayout = customDisplayPageJson.getBoolean("privateLayout")
33 />
34 <#local customDisplayPageDataAttr>
35 data-vale-custom-display-page='{"groupId":${groupId},"uuid":"${uuid}","privateLayout":${privateLayout?c}}'
36 data-vale-category-endpoint=${categoryFilterEndpoint}
37 </#local>
38 <#return customDisplayPageDataAttr/>
39</#function>
40
41<section class="vale-widget-imprensa-relacionadas bg-verde-vale" id="vale-widget-imprensa-relacionadas-${namespace}">
42 <div class="fragment-container overflow-hidden">
43 <div class="container">
44 <div class="titulo d-flex justify-content-between mt-7 mb-5">
45 <h2 class="text-amarelo-vale">
46 <@liferay.language key="press" />
47 </h2>
48 <div class="d-none d-md-flex align-self-center justify-content-end">
49 <img
50 class="${namespace} carrossel-card-branco-categoria-button-prev btn btn-primary border-amarelo-vale bg-amarelo-vale mr-3 p-1 rounded-circle"
51 src="${images_path}seta-2-esq_bra"
52 alt="button-prev"
53 />
54 <img
55 class="${namespace} carrossel-card-branco-categoria-button-next btn btn-primary border-amarelo-vale bg-amarelo-vale p-1 rounded-circle"
56 src="${images_path}seta-2-dir_bra"
57 alt="button-next"
58 />
59 </div>
60 </div>
61 <div class="swiper ${namespace} carrossel-card-branco-categoria">
62 <div class="swiper-wrapper mb-sm-6">
63 <#if entries?has_content>
64 <#list entries as curEntry>
65 <#assign
66 assetRenderer = curEntry.getAssetRenderer()
67 article = assetRenderer.getArticle()
68
69 categoryFilterEndpoint = getCategoryFilterEndpoint(curEntry)
70
71 DDMFormFieldValuesMap = assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()
72 DDMFormFieldsReferencesMap = assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true)
73
74 customDisplayPageJsonString = getDDMFormFieldsValue(DDMFormFieldsReferencesMap, DDMFormFieldValuesMap, "customDisplayPage")
75 customDisplayPageJson = jsonFactoryUtil.createJSONObject(customDisplayPageJsonString)
76
77 hasCustomDisplayPage = customDisplayPageJson.getString("groupId")?has_content
78 customDisplayPageDataAttr = hasCustomDisplayPage?then(
79 getCustomDisplayPageDataAttr(customDisplayPageJson, categoryFilterEndpoint), "")
80
81 displayPageUrl = getDisplayPageUrl(curEntry) + categoryFilterEndpoint
82 />
83 <div class="swiper-slide">
84 <a href="${displayPageUrl}" class="text-decoration-none" ${customDisplayPageDataAttr}>
85 <div class="box d-flex flex-column justify-content-between p-3">
86 <div>
87 <p class="text-verde-aqua mb-2">
88 <#assign categories = curEntry.getCategories() />
89 <#list categories as category>
90 <#if category.vocabularyId == pressTopicVocabularyId>
91 ${category.name}
92 <#break>
93 </#if>
94 </#list>
95 </p>
96 <p class="text-verde-vale">
97 ${curEntry.getTitle(locale)}
98 </p>
99 </div>
100 <p class="text-cinza-escuro m-0">
101 <#assign dataField = DDMFormFieldsReferencesMap['data'].name />
102 <#assign data = DDMFormFieldValuesMap[dataField][0].getValue().getString(locale) />
103 <#assign date_localized = dateUtil.formatDate("yyyy-MM-dd", data, locale)/>
104
105 ${date_localized}
106 </p>
107 <img
108 class="onda position-absolute"
109 src="${images_path}onda_verde"
110 />
111 </div>
112 </a>
113 </div>
114 </#list>
115 </#if>
116 </div>
117 </div>
118 <a
119 class="bg-amarelo-vale border-amarelo-vale btn btn-nm btn-primary mb-6"
120 href="${(locale == 'pt_BR')?then('/imprensa','/press-releases')}"
121 target="_blank"
122 >
123 <@liferay.language key="access-press-area" />
124 </a>
125 </div>
126 </div>
127</section>
128
129<style>
130.vale-widget-imprensa-relacionadas .onda {
131 position: absolute;
132 bottom: 1.875rem;
133 right: -0.125rem;
134}
135
136.vale-widget-imprensa-relacionadas .box {
137 background-color: var(--branco);
138 border-left: 10px solid var(--amarelo-vale);
139 height: 14.6875rem;
140 margin-bottom: 2rem;
141}
142
143.vale-widget-imprensa-relacionadas p {
144 display: -webkit-box;
145 line-clamp: 4;
146 overflow: hidden;
147 -webkit-line-clamp: 4;
148 -webkit-box-orient: vertical;
149}
150
151@media screen and (min-width: 768px) {
152 .vale-widget-imprensa-relacionadas .box {
153 border-left: 20px solid var(--amarelo-vale);
154 height: 11.875rem;
155 }
156
157 .vale-widget-imprensa-relacionadas p {
158 line-clamp: 3;
159 -webkit-line-clamp: 3;
160 }
161}
162
163.vale-widget-imprensa-relacionadas .container {
164 overflow: visible;
165}
166
167.vale-widget-imprensa-relacionadas .swiper {
168 overflow: visible;
169}
170
171.vale-widget-imprensa-relacionadas .swiper-slide {
172 width: auto;
173}
174
175</style>
176
177<script>
178(function(){
179
180var swiper = new Swiper(".${namespace}.carrossel-card-branco-categoria", {
181 slidesPerView: 1,
182 spaceBetween: 32,
183 navigation: {
184 nextEl: ".${namespace}.carrossel-card-branco-categoria-button-next",
185 prevEl: ".${namespace}.carrossel-card-branco-categoria-button-prev",
186 disabledClass: "disabled",
187 navigationDisabledClass: "disabled",
188 },
189 pagination: {
190 clickable: true,
191 },
192 slideClass: "swiper-slide",
193 breakpoints: {
194 768: {
195 slidesPerView: 2,
196 },
197 1024: {
198 slidesPerView: 3,
199 },
200 },
201});
202
203 // Tagueamento
204
205 const namespace = document.querySelector("#vale-widget-imprensa-relacionadas-${namespace}");
206
207 const section = namespace.querySelector("h2").innerText;
208
209 const links = namespace.querySelectorAll("a");
210
211 const handleEventLinkClick = (title, href) => {
212 Analytics.track("Link", {
213 section: section,
214 rotulo: title + " : " + href,
215 });
216 };
217
218 links.forEach(link => {
219 const text = link.querySelector('p.text-verde-vale');
220 const title = text ? text.innerText : '';
221 link.addEventListener("click", () => handleEventLinkClick(title, link.href))
222 })
223
224 // Configurar URL de página de exibição dinâmica
225 const displayPageUrls = namespace.querySelectorAll('a[data-vale-custom-display-page]');
226
227 displayPageUrls.forEach(displayPageUrl => {
228 const customDisplayPage = displayPageUrl.dataset["valeCustomDisplayPage"];
229 const categoryEndpoint = displayPageUrl.dataset["valeCategoryEndpoint"];
230 Liferay.Service(
231 '/layout/get-layout-by-uuid-and-group-id',
232 JSON.parse(customDisplayPage),
233 layout => {
234 const friendlyURL = layout["friendlyURL"];
235 if (friendlyURL) {
236 displayPageUrl.href = friendlyURL + categoryEndpoint;
237 }
238 }
239 );
240 })
241})()
242
243</script>
See also