Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. <!DOCTYPE html>
  2. <!--
  3. Licensed to the Apache Software Foundation (ASF) under one
  4. or more contributor license agreements. See the NOTICE file
  5. distributed with this work for additional information
  6. regarding copyright ownership. The ASF licenses this file
  7. to you under the Apache License, Version 2.0 (the
  8. "License"); you may not use this file except in compliance
  9. with the License. You may obtain a copy of the License at
  10. http://www.apache.org/licenses/LICENSE-2.0
  11. Unless required by applicable law or agreed to in writing,
  12. software distributed under the License is distributed on an
  13. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  14. KIND, either express or implied. See the License for the
  15. specific language governing permissions and limitations
  16. under the License.
  17. -->
  18. <html>
  19. <head>
  20. <!--
  21. Customize this policy to fit your own app's needs. For more guidance, see:
  22. https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
  23. Some notes:
  24. * gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
  25. * https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
  26. * Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
  27. * Enable inline JS: add 'unsafe-inline' to default-src
  28. -->
  29. <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" />
  30. <!--these three for the calendar-->
  31. <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet">
  32. <link href="css/robotocondensed.css" rel="stylesheet">
  33. <link rel="stylesheet" href="calendar_files/css/demo.css"/>
  34. <link rel="stylesheet" href="css/file.css"/>
  35. <link rel="stylesheet" href="calendar_files/css/theme1.css"/>
  36. <!--this is for the search bar-->
  37. <link rel = "stylesheet" href = "css/searchbar1.css">
  38. <meta name="format-detection" content="telephone=no">
  39. <meta name="msapplication-tap-highlight" content="no">
  40. <meta name="viewport" content="initial-scale=1, width=device-width, height=device, heigth viewport-fit=cover">
  41. <link rel="stylesheet" type="text/css" href="css/index.css">
  42. <link rel="stylesheet" href="lib/OnsenUI/css/onsenui.css">
  43. <link rel="stylesheet" href="lib/OnsenUI/css/onsen-css-components.min.css">
  44. <script src="lib/OnsenUI/js/onsenui.min.js"></script>
  45. <script src="js/jquery_.js"></script>
  46. </head>
  47. <body>
  48. <script type="text/javascript" src="js/saveLocal.js"></script>
  49. <ons-navigator swipeable animation="slide" id="myNavigator">
  50. <ons-page>
  51. <ons-toolbar>
  52. <div class="center">Directorio Artesanal</div>
  53. <div class="right"><img class="list-item__thumbnail" src="img/ICP.png"></div>
  54. </ons-toolbar>
  55. <ons-tabbar swipeable position="bottom" modifier="autogrow">
  56. <ons-tab page="home.html" label="Hogar" active></ons-tab>
  57. <ons-tab page="renglones.html" label="Artesanías"></ons-tab>
  58. <ons-tab page ="search.html" label="Buscar"> </ons-tab>
  59. <ons-tab page="ferias.html" label="Eventos"></ons-tab>
  60. <ons-tab page="instituto.html" label="ICP"></ons-tab>
  61. </ons-tabbar>
  62. </ons-page>
  63. </ons-navigator>
  64. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  65. <template id="home.html">
  66. <ons-page id="home" class="red">
  67. <ons-card id="azar">
  68. <!--<div class="title" id="Title"></div>-->
  69. <div id="image"></div><br>
  70. <div class="content" id="Content"></div>
  71. <script type="text/javascript" src="js/azar.js"> </script>
  72. </ons-card>
  73. </ons-page>
  74. </template>
  75. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  76. <template id="artesanos.html">
  77. <ons-page id="artesanos">
  78. <ons-toolbar>
  79. <div class="left"><ons-back-button>Atrás</ons-back-button></div>
  80. <div class="center"></div>
  81. </ons-toolbar>
  82. <ons-pull-hook id="pull-hook" threshold-height="120px">
  83. <ons-icon id="pull-hook-icon" size="22px" class="pull-hook-content" icon="fa-arrow-down"></ons-icon>
  84. </ons-pull-hook>
  85. <ons-list id="artesanos-list" src="">
  86. <ons-list-header>Artesanos</ons-list-header>
  87. </ons-list>
  88. <script>
  89. ons.getScriptPage().onInit = function () {
  90. this.querySelector('ons-toolbar div.center').textContent = this.data.title;
  91. //var File = this.data.title.toUpperCase() + '.json' ;
  92. var Esp = this.data.esp.split(', ');
  93. var artesanos_json = this.data.json;
  94. console.log(artesanos_json);
  95. //Convertir en mayuscula primera letra del string.
  96. for(var i=0; i<Esp.length; i++) {
  97. Esp[i] = Esp[i].charAt(0).toUpperCase() + Esp[i].slice(1);
  98. };
  99. var pullHook = document.getElementById('pull-hook');
  100. var icon = document.getElementById('pull-hook-icon');
  101. pullHook.addEventListener('changestate', function (event) {
  102. switch (event.state) {
  103. case 'initial':
  104. icon.setAttribute('icon', 'fa-arrow-down');
  105. icon.removeAttribute('rotate');
  106. icon.removeAttribute('spin');
  107. break;
  108. case 'preaction':
  109. icon.setAttribute('icon', 'fa-arrow-down');
  110. icon.setAttribute('rotate', '180');
  111. icon.removeAttribute('spin');
  112. break;
  113. case 'action':
  114. icon.setAttribute('icon', 'fa-spinner');
  115. icon.removeAttribute('rotate');
  116. icon.setAttribute('spin', true);
  117. break;
  118. }
  119. });
  120. var getArtesania = function (num) {
  121. var Artesanos = ``;
  122. console.log('Filtrado de ',Esp[num])
  123. var results = [];
  124. var searchVal = "my Name";
  125. for (var i=0 ; i < artesanos_json.length ; i++)
  126. {
  127. if (artesanos_json[i].Especificaciones.includes(Esp[num])) {
  128. results.push(artesanos_json[i]);
  129. }
  130. }
  131. /*var arr1=artesanos_json.filter(function(item){
  132. return item.Nombre=="Ana";
  133. });*/
  134. for(var i=0; i<results.length; i++) {
  135. //if(Esp[num] in artesanos_json.) {}
  136. Artesanos=Artesanos+`<a id='home.html'>${results[i].Nombre} | ${results[i].Municipio}<br>`
  137. //`<a id='home.html'>${Artesania.artesano} | ${Artesania.municipio}</a> `
  138. }
  139. return {
  140. name: Esp[num],
  141. artesan: Artesanos
  142. };
  143. };
  144. var getData = function () {
  145. const data = [];
  146. for (var i = 0; i < Esp.length; i++) {
  147. data.push(getArtesania(i));
  148. }
  149. return data;
  150. };
  151. var createArtesano = function (Artesano) {
  152. return ons.createElement(`
  153. <ons-list-item expandable tappable>
  154. <div class="center" >${Artesano.Nombre}</div>
  155. <div class="expandable-content"> Municipio: ${Artesano.Municipio}<br>
  156. Tel\u00e9fono: ${Artesano["Tel\u00e9fono 1"]}<br>
  157. Correo Electr\u00f3nico: ${Artesano["E-mail"]}<br>
  158. </div>
  159. </ons-list-item>`
  160. );
  161. };
  162. //var Artesanias = getData();
  163. //artesanos_json
  164. for (Artesano of artesanos_json) {
  165. var cont = 0;
  166. var lista = document.getElementById('artesanos-list');
  167. //Recopilar datos no vacios.
  168. if (Artesano.Municipio.trim().length != 0) {
  169. cont ++;
  170. }
  171. if (Artesano["Tel\u00e9fono 1"].trim().length != 0) {
  172. cont ++;
  173. }
  174. if (Artesano["E-mail"].trim().length != 0) {
  175. cont ++;
  176. }
  177. if (Artesano.Especificaciones.trim().length != 0) {
  178. cont ++;
  179. }
  180. //info a pasar
  181. //'title':'${Artesano.Nombre}','esp': '${info}'
  182. var item = ons.createElement(`<ons-list-item onclick="myNavigator.pushPage('artesano.html', { data: { title: '${Artesano.Nombre}', mun: '${Artesano.Municipio}', tel: '${Artesano["Tel\u00e9fono 1"]}', email: '${Artesano["E-mail"]}', esp: '${Artesano.Especificaciones}' } })" tappable>
  183. <div class="title">${Artesano.Nombre}</div>
  184. </ons-list-item>`);
  185. if(cont == 0){
  186. console.log(Artesano.Nombre+' no tiene ningun tipo de informacion.');
  187. //return ons.createElement(``);
  188. }
  189. else {
  190. lista.appendChild(item);
  191. }
  192. };
  193. };
  194. </script>
  195. <style>
  196. .pull-hook-content {
  197. color: #333;
  198. transition: transform .25s ease-in-out;
  199. }
  200. </style>
  201. </ons-page>
  202. </template>
  203. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  204. <template id="artesanias.html">
  205. <ons-page id="artesanias">
  206. <ons-toolbar>
  207. <div class="left"><ons-back-button>Atrás</ons-back-button></div>
  208. <div class="center"></div>
  209. </ons-toolbar>
  210. <ons-pull-hook id="pull-hook" threshold-height="120px">
  211. <ons-icon id="pull-hook-icon" size="22px" class="pull-hook-content" icon="fa-arrow-down"></ons-icon>
  212. </ons-pull-hook>
  213. <ons-list id="artesania-list" src="">
  214. <ons-list-header>Artesanias</ons-list-header>
  215. </ons-list>
  216. <script>
  217. ons.getScriptPage().onInit = function () {
  218. this.querySelector('ons-toolbar div.center').textContent = this.data.title;
  219. //var File = this.data.title.toUpperCase() + '.json' ;
  220. var Esp = this.data.esp.split(', ');
  221. var artesanos_json = this.data.json;
  222. //Convertir en mayuscula primera letra del string.
  223. for(var i=0; i<Esp.length; i++) {
  224. Esp[i] = Esp[i].charAt(0).toUpperCase() + Esp[i].slice(1);
  225. };
  226. var pullHook = document.getElementById('pull-hook');
  227. var icon = document.getElementById('pull-hook-icon');
  228. pullHook.addEventListener('changestate', function (event) {
  229. switch (event.state) {
  230. case 'initial':
  231. icon.setAttribute('icon', 'fa-arrow-down');
  232. icon.removeAttribute('rotate');
  233. icon.removeAttribute('spin');
  234. break;
  235. case 'preaction':
  236. icon.setAttribute('icon', 'fa-arrow-down');
  237. icon.setAttribute('rotate', '180');
  238. icon.removeAttribute('spin');
  239. break;
  240. case 'action':
  241. icon.setAttribute('icon', 'fa-spinner');
  242. icon.removeAttribute('rotate');
  243. icon.setAttribute('spin', true);
  244. break;
  245. }
  246. });
  247. var getArtesania = function (num) {
  248. var Artesanos = ``,
  249. ArtesanosInfo = ``;
  250. //console.log('Filtrado de ',Esp[num])
  251. var results = [];
  252. var searchVal = "my Name";
  253. for (var i=0 ; i < artesanos_json.length ; i++)
  254. {
  255. if (artesanos_json[i].Especificaciones.includes(Esp[num])) {
  256. results.push(artesanos_json[i]);
  257. }
  258. }
  259. /*var arr1=artesanos_json.filter(function(item){
  260. return item.Nombre=="Ana";
  261. });*/
  262. for(var i=0; i<results.length; i++) {
  263. //if(Esp[num] in artesanos_json.) {}
  264. Artesanos+=`${results[i].Nombre}|`
  265. ArtesanosInfo+=`${results[i].Municipio}|${results[i]["Tel\u00e9fono 1"]}|${results[i]["E-mail"]}|${results[i].Especificaciones}&&`
  266. //`<a id='home.html'>${Artesania.artesano} | ${Artesania.municipio}</a> `
  267. }
  268. return {
  269. name: Esp[num],
  270. artesan: Artesanos,
  271. info: ArtesanosInfo
  272. };
  273. };
  274. var getData = function () {
  275. const data = [];
  276. for (var i = 0; i < Esp.length; i++) {
  277. data.push(getArtesania(i));
  278. }
  279. return data;
  280. };
  281. var createArtesania = function (Artesania) {
  282. //console.log('Devuelto elemento')
  283. var listaArt=``;
  284. var arts = Artesania.artesan.split('|');
  285. var artsInfo = Artesania.info.split('&&');
  286. for(var i=0; i<arts.length; i++) {
  287. var lot = artsInfo[i].split('|'),
  288. mun = lot[0],
  289. tel = lot[1],
  290. email = lot[2],
  291. esp = lot[3];
  292. listaArt += `<ons-item tappable onclick="myNavigator.pushPage('artesano.html', {data: {title:'${arts[i]}', mun: '${mun}', tel: '${tel}', email: '${email}', esp: '${esp}'}} )" ><div class="center">`+ arts[i] +`</div></ons-item><br>`;
  293. }
  294. return ons.createElement(`
  295. <ons-list-item expandable tappable>
  296. <div class="center" >${Artesania.name}</div>
  297. <div class="expandable-content">Artesanos que trabajan con ${Artesania.name}
  298. <ons-card>${listaArt}</ons-card></div>
  299. </ons-list-item>`
  300. );
  301. };
  302. var Artesanias = getData();
  303. for (Art of Artesanias) {
  304. var Artesania = createArtesania(Art);
  305. document.getElementById('artesania-list').appendChild(Artesania);
  306. };
  307. pullHook.onAction = function (done) {
  308. setTimeout(function() {
  309. document.getElementById('artesania-list').appendChild(createArtesania(getArtesania()));
  310. done();
  311. }, 400);
  312. }
  313. };
  314. </script>
  315. <style>
  316. .pull-hook-content {
  317. color: #333;
  318. transition: transform .25s ease-in-out;
  319. }
  320. </style>
  321. </ons-page>
  322. </template>
  323. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  324. <template id="artesano.html">
  325. <ons-page id="artesano">
  326. <ons-toolbar>
  327. <div class="left"><ons-back-button>Atras</ons-back-button></div>
  328. <div class="center"></div>
  329. </ons-toolbar>
  330. <body>
  331. <ons-card id="all"></ons-card>
  332. </body>
  333. <script>
  334. ons.getScriptPage().onInit = function () {
  335. this.querySelector('ons-toolbar div.center').textContent = this.data.title;
  336. var info = ``,
  337. mun = this.data.mun,
  338. tel = this.data.tel,
  339. email = this.data.email,
  340. esp = this.data.esp;
  341. if(mun.trim() != '') {
  342. info = info + `Municipio: ` + mun + `<br>`;
  343. }
  344. if(tel.trim() != '') {
  345. info = info + `Tel\u00e9fono: <a href="tel:+1` + tel + `">` + tel + `</a><br>`;
  346. }
  347. if(email.trim() != '') {
  348. info = info + `Correo Electr\u00f3nico: ` + email + `<br>`;
  349. }
  350. if(esp.trim() != '') {
  351. info = info + `Trabaja con: ` + esp + `<br>`;
  352. }
  353. document.getElementById("all").innerHTML = `${info}`;
  354. }
  355. </script>
  356. </ons-page>
  357. </template>
  358. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  359. <script>
  360. var Madera = JSON.parse(window.localStorage.getItem("TODOS"));
  361. function filter(){
  362. // var request = new XMLHttpRequest()
  363. // request.open('GET','json/MADERA.json',true)
  364. // request.onload = function(){
  365. // var Madera = JSON.parse(this.response)
  366. // }
  367. // request.send()
  368. // var input = document.getElementById('searchbar').value
  369. // var firstwood = Madera[0].Nombre
  370. // ons.notification.alert('Searched for: ' + firstwood)
  371. var input = document.getElementById('searchbar').value
  372. var x = document.getElementsByClassName('artists');
  373. input = input.trim().toLowerCase();
  374. if (input.length == 0){
  375. for (i = 0; Madera.length; i++){
  376. x[i].style.display = "list-item";
  377. }
  378. }
  379. else{
  380. var foundesp = 0;
  381. for (i = 0; i < Madera.length; i++){
  382. console.log("damn")
  383. //try checking the especificacion first
  384. var especificaciones = Madera[i].Especificaciones1;
  385. especificaciones = especificaciones.split(';');
  386. for (var j = 0; j < especificaciones.length; j++){
  387. var especificacion = especificaciones[j];
  388. especificacion = especificacion.trim().toLowerCase();
  389. if (input == especificacion){
  390. x[i].style.display = "list-item";
  391. foundesp = 1;
  392. break;
  393. }
  394. else{
  395. x[i].style.display = "none";
  396. }
  397. }
  398. }
  399. if (foundesp != 1){
  400. input = input.trim().toLowerCase().split(' ')
  401. //changing the input into something that can be searched
  402. for (var i = 0; i < input.length; i++){
  403. input[i] = input[i].charAt(0).toUpperCase() + input[i].slice(1);
  404. }
  405. console.log(input);
  406. for(var i = 0; i < Madera.length; i++){
  407. count = 0;
  408. artist = Madera[i].Nombre.trim().split(' ');
  409. for (k = 0; k < input.length; k++){
  410. for (var l = 0; l < artist.length; l++){
  411. if(artist[l] == input[k]){
  412. x[i].style.display = "list-item";
  413. break;
  414. }
  415. else{
  416. x[i].style.display = "none";
  417. }
  418. }
  419. }
  420. }
  421. }
  422. }
  423. }
  424. </script>
  425. <template id="search.html">
  426. <ons-page id="Buscar">
  427. <p style="text-align: center; margin-top: 10px;">
  428. <ons-search-input placeholder="Search" id = "searchbar"
  429. onchange = "filter()"
  430. ></ons-search-input>
  431. </p>
  432. <ons-list id="results" src="">
  433. </ons-list>
  434. <script>
  435. for (i = 0; i < Madera.length;i++){
  436. var artesano = ons.createElement(`<ons-list-item class = "artists"
  437. onclick="myNavigator.pushPage('artesano.html', { data: {title: '${Madera[i].Nombre}', mun: '${Madera[i].Municipio}', tel: '${Madera[i]["Telefono1"]}', email: '${Madera[i]["E-mail1"]}', esp: '${Madera[i].Especificaciones1}' } })" tappable>
  438. <div>${Madera[i].Nombre}</div>
  439. </ons-list-item>`);
  440. // var artesano = ons.createElement(`
  441. // <ons-list-item class = "artists">
  442. // <div class="center" >${Madera[i].Nombre}</div>
  443. // </ons-list-item>`
  444. // );
  445. document.getElementById('results').appendChild(artesano);
  446. }
  447. </script>
  448. </ons-page>
  449. </template>
  450. <!-- ---------------------------------------------------------------------------------------------------------------------------------------- -->
  451. <template id= "artesano.html">
  452. <ons-page id = "artesano">
  453. <ons-toolbar>
  454. <div class = "left"> <ons-back-button> Atras </ons-back-button></div>
  455. <div class = "center"></div>
  456. </ons-toolbar>
  457. <body>
  458. <ons-card id="all"></ons-card>
  459. </body>
  460. <script>
  461. ons.getScriptPage().onInit = function () {
  462. this.querySelector('ons-toolbar div.center').textContent = this.data.title;
  463. var info = ``,
  464. mun = this.data.mun,
  465. tel = this.data.tel,
  466. email = this.data.email,
  467. esp = this.data.esp;
  468. if(mun.trim() != '') {
  469. info = info + `Municipio: ` + mun + `<br>`;
  470. }
  471. if(tel.trim() != '') {
  472. info = info + `Tel\u00e9fono: <a href="tel:+1` + tel + `">` + tel + `</a><br>`;
  473. }
  474. if(email.trim() != '') {
  475. info = info + `Correo Electr\u00f3nico: ` + email + `<br>`;
  476. }
  477. if(esp.trim() != '') {
  478. info = info + `Trabaja con: ` + esp + `<br>`;
  479. }
  480. document.getElementById("all").innerHTML = `${info}`;
  481. }
  482. </script>
  483. </ons-page>
  484. </template>
  485. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  486. <template id="renglones.html">
  487. <ons-page id="renglones">
  488. <!--div class="search-bar">
  489. <p style="text-align: center; margin-top: 10px;">
  490. <ons-search-input placeholder="Search" onchange="ons.notification.alert('Searched for: ' + this.value)"
  491. style="width: 96%; margin: 6px auto 6px auto;"></ons-search-input>
  492. </p>
  493. </div-->
  494. <ons-card id="list">
  495. <script type="text/javascript" src="js/renglones.js"></script>
  496. </ons-card>
  497. <!--Javascript function to hide other open expandables-->
  498. <script>
  499. const hideAll = () => {
  500. Array.from(document.querySelector('#list').children)
  501. .forEach(item => {
  502. if (item.expanded) {
  503. item.hideExpansion();
  504. }
  505. });
  506. };
  507. </script>
  508. <style>
  509. .intro {
  510. text-align: center;
  511. padding: 20px;
  512. margin-top: 30px;
  513. }
  514. ons-card {
  515. cursor: pointer;
  516. color: #333;
  517. }
  518. .card__title,
  519. .card--material__title {
  520. font-size: 15px;
  521. }
  522. </style>
  523. </ons-page>
  524. </template>
  525. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  526. <template id="ferias.html">
  527. <ons-page id="ferias">
  528. <!--<ons-card>
  529. <div id = "caleandar" class = "calendar" style="margin-top: 20px;">
  530. <script type="text/javascript" src="calendar_files/js/caleandar.js"></script>
  531. <script type="text/javascript" src="calendar_files/js/events.js"></script>
  532. </div>
  533. </ons-card>-->
  534. <br><br><br>
  535. <button onclick="redirect()">Pasar a la pagina de eventos</button>
  536. <script>
  537. function redirect() {
  538. location.replace("https://facebook.com/icppr")
  539. }
  540. </script>
  541. </ons-page>
  542. </template>
  543. <!-- ------------------------------------------------------------------------------------------------------------------------------------------------------- -->
  544. <template id="instituto.html">
  545. <ons-page id="instituto">
  546. <ons-card>
  547. <h1>Instituto de Cultura Puertorriqueña</h1>
  548. <h3>Ven, descubre lo que nuestra riqueza cultural puertorriqueña tiene para tí.<br> Disfrútala, es tu identidad.
  549. </h3>
  550. <body>
  551. <br>
  552. El Instituto de Cultura Puertorriqueña (ICP) tiene como misión investigar, conservar, promover y divulgar la cultura puertorriqueña en su diversidad y complejidad. Con la memoria y la promesa de la cultura, los distintos niveles, sectores, edades e intereses de la comunidad crean el conjunto de modos de vida, costumbres y manifestaciones artísticas que nos identifica como país. El ICP existe para preservar y divulgar estos saberes, difundir internacionalmente nuestro talento y enriquecer el amor a lo propio.
  553. <br><br>
  554. Nuestras tradiciones no son rígidos objetos de museo, sino actividades vivas en constante renovación y reapropiación, según van también desarrollándose nuevas tradiciones. El respeto a la diversidad, a lo híbrido, a lo apropiado y a lo replanteado también son parte esencial de esta institución que busca activamente la colaboración de todos en un quehacer que debe ser siempre compartido de la mano con su ingente diversidad.
  555. <br><br>
  556. Prof. Carlos R. Ruiz Cortés<br>
  557. Director Ejecutivo<br>
  558. Instituto de Cultura Puertorriqueña<br>
  559. Directorio Artesanal Cultural PR <img src="img/gobierno.png" style="width:35px;height:35px;border:0;">
  560. <br><br>
  561. </body>
  562. Visita nuestra <a href="https://www.icp.pr.gov/">Página Web</a> o síguenos en nuestras redes sociales: <br>
  563. <a href="https://twitter.com/icppr"><img src="img/twitter.png" alt="Twitter" style="width:35px;height:35px;border:0;">
  564. </a>
  565. <a href="https://facebook.com/icppr"><img src="img/facebook.png" alt="Facebook" style="width:35px;height:35px;border:0;">
  566. </a>
  567. <a href="https://youtube.com/user/icppr"><img src="img/youtube.png" alt="Youtube" style="width:35px;height:35px;border:0;">
  568. </a>
  569. <a href="https://instagram.com/icppr"><img src="img/instagram.png" alt="Instagram" style="width:35px;height:35px;border:0;">
  570. </a>
  571. <!--</div>
  572. <!--</p>-->
  573. </ons-card>
  574. </ons-page>
  575. </template>
  576. <script src="js/load.js"></script>
  577. <script type="text/javascript" src="cordova.js"></script>
  578. <script type="text/javascript" src="js/index.js"></script>
  579. </body>
  580. </html>