Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.80 KB | None | 0 0
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2.     pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <!-- -------------------------------------------------------------------------HEAD------------------------------------------------------------------------>
  6. <head>
  7.  
  8. <%@ page import="java.sql.*"%>
  9. <%@ page import="javax.servlet.*"%>
  10. <%@ page import="java.io.IOException"%>
  11.  
  12. <!--Import Google Icon Font-->
  13. <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  14.  
  15. <!--Import materialize.css-->
  16. <link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection" />
  17.  
  18. <!--Let browser know website is optimized for mobile-->
  19. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  20.  
  21. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  22.  
  23. <!-- JQUERY UI -->
  24. <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  25. <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  26.  
  27. <script>
  28.     $(document).ready(function() {
  29.         // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered
  30.         $('.modal-trigger').leanModal();
  31.     });
  32.  
  33.     $('.fixed-action-btn').openFAB();
  34.    
  35. </script>
  36.  
  37. <script type="text/javascript">
  38.  
  39. function validateTitolo(event) {
  40.       var $input = $(this);
  41.  
  42.       var isValid = $input.val().length > 0; //More than 5 characters required
  43.       $input.addClass(isValid ? "valid" : "invalid");
  44.     }
  45.  
  46.     $(document).ready(function() {
  47.       $("#titolo").blur(validateTitolo);
  48.     })
  49.  
  50.     function validateTesto(event) {
  51.       var $input = $(this);
  52.  
  53.       var isValid = $input.val().length > 0; //More than 5 characters required
  54.       $input.addClass(isValid ? "valid" : "invalid");
  55.     }
  56.  
  57.     $(document).ready(function() {
  58.       $("#testo").blur(validateTesto);
  59.     })
  60.    
  61.     $(document)
  62.             .ready(
  63.                     function() {
  64.  
  65.                         // creazione delle note salvate sul server sulla pagina        
  66.                         // per ritornare le varie note e creare una nota nel codice html per ogni nota trovata
  67.  
  68.                         <%HttpSession sessione = request.getSession(); // prendo la sessione dalla risposta
  69.  
  70.             String utenteconnesso = (String) sessione.getAttribute("utente"); // dalla sessione prendo il valore della chiave accessCount , devo fare ilcast per farlo diventare un intero poiche sono tutti oggetti
  71.  
  72.             Connection con = null; // connection e la connessione con il database e per il momento non c'e null
  73.             Statement stmt = null; // statament e l'oggetto per fare le richieste al database
  74.             ResultSet result = null;
  75.  
  76.             try {
  77.                 // metodo per settare il driver usato per la connessione al database , in questo caso questa stringa e il driver per il database mysql
  78.                 Class.forName("com.mysql.jdbc.Driver");
  79.                 // ora setto la connesione con il server inserendo l'url del database e poi /nomedeldatabasecreato
  80.                 // tipo in mysql create database test cosi crea un database con il quale mi posso connettere
  81.                 //poi username e password del server mysql
  82.                 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Note", "root", "root");
  83.             } catch (Exception e) {
  84.                 System.out.println(e);
  85.                 System.exit(0);
  86.             }
  87.  
  88.             try {
  89.  
  90.                 PreparedStatement pstmt = con
  91.                         .prepareStatement("select * from DatiNote where Nomeutente = ? order by Datamodifica DESC");
  92.                 pstmt.setString(1, utenteconnesso);
  93.                 result = pstmt.executeQuery();%>
  94.                         availableTags = [];
  95.                         indice = 0;
  96.                         <%// success ritorna il numero di aggiornamenti fatti per riga
  97.                 // se maggiore o uguale a uno ovvero non ha fallito
  98.  
  99.                 while (result.next()) {
  100.                     // come se fosse if((result.getString("Nomeutente").equals(nomeutente)) && (result.getString("Pass").equals(passutente)))
  101.  
  102.                     System.out.println("note trovate dell'utente " + utenteconnesso);
  103.  
  104.                     String stringaxml = result.getString("filexml").replaceAll("\r\n|\r|\n", ""); // risolvo cosi il problema del ritorno a capo che dava problemi al parser
  105.  
  106.                     String titolonota = result.getString("Titolo");
  107.  
  108.                     String data = result.getString("Datamodifica");
  109.                     System.out.println(stringaxml);%>
  110.  
  111.                         var date = "<%=data%>";
  112.  
  113.                         var testoxml = '<%=stringaxml%>';
  114.  
  115.                         // per vedere se la nota e condivisa ovvero se l'autore della nota e diverso dall'autore connesso
  116.  
  117.                         var utentelogin = '<%=utenteconnesso%>';
  118.  
  119.                         availableTags.push(new Object({
  120.                             value : "<%=titolonota%>",
  121.                             valore : indice
  122.                         }));
  123.  
  124.                         parser = new DOMParser(); // creo un parser che usero per leggere la stringa xml
  125.                         xmlDoc = parser.parseFromString(testoxml, "text/xml"); // con il parser , parso la stringa passata come testo , e in modo particolare xml creando cosi un oggetto xml dom
  126.                         titolo = xmlDoc.getElementsByTagName("titolo")[0].childNodes[0].nodeValue; // xmldoc e l'oggetto xml appena creato quando abbiamo richiesto il file xml , con get... prendo tutti i nodi elementi il cui tag e title e di tutti questi prendo il primo (0)cmodo che trovo leggendo il file partendo dall'inizio , di questo devo accedere al suo testo quindi ho bisogno del suo figlio ovvero il text node quindi uso childNodes[0] e per prendere il valore del testo uso la proprieta nodeValue
  127.                         autore = xmlDoc.getElementsByTagName("nomeutente")[0].childNodes[0].nodeValue;
  128.                         testo = xmlDoc.getElementsByTagName("testo")[0].childNodes[0].nodeValue;
  129.  
  130.                         var blocconote = '<div class="container"><div class="col s12 m6"><div class="card-content white-text"><div class="card blue-grey darken-1" id='+ indice + '><div class="modal-content"><div class="modal-header">'
  131.                                 + '<button type="submit" class="close" data-dismiss="modal" aria-label="Close" data-toggle="modal" data-target="#alertelimina" data-whatever='+ indice + '>'
  132.                                 + '<span aria-hidden="true">&times;</span></button>'
  133.                                 + '<h4 class="card-title" ><p class ='+ indice + '    >'
  134.                                 + titolo
  135.                                 + '</p></h4></div>'
  136.                                 + '<div class="modal-body"><p class ='+ indice + '    >'
  137.                                 + testo
  138.                                 + '</p></div>'
  139.                                 + '<div class="modal-footer"> <p class =' + indice + ' >'
  140.                                 + date + '</p></div></div>';
  141.  
  142.  
  143.                         blocconote += '<button type="button" class="btn btn-primary" data-dismiss="modal" aria-hidden="true" data-toggle="modal" data-target="#alertmodifica" data-whatever='+ indice + '> Modifica</button>';
  144.  
  145.                         indice++;
  146.  
  147.                         document.getElementById("note").innerHTML += blocconote;
  148.                         <%}
  149.  
  150.                 result.close();
  151.                 con.close();
  152.                 pstmt.close();
  153.  
  154.             }
  155.  
  156.             catch (SQLException e) {
  157.                 // TODO Auto-generated catch block
  158.                 e.printStackTrace();
  159.                 System.out.println("non ci sono note");
  160.             }%>
  161.  
  162.                         // utile per sapere quale bottone di quale nota e stata premuto tipo se ritorna 1 allora sara la nota con id 1 e riprendo i dati e li metto nel campo di modifica
  163.                         $('#alertmodifica').on('show.bs.modal', function (event) {
  164.                            
  165.                            
  166.                            
  167.                            
  168.                               var button = $(event.relatedTarget) // Button that triggered the modal
  169.                               var valore = button.data('whatever') // Extract info from data-* attributes
  170.                               // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
  171.                               // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
  172.                              
  173.                               var modal = $(this)
  174.                              
  175.                               modal.find("#titolo").val(document.getElementsByClassName(valore)[0].childNodes[0].nodeValue);
  176.                               modal.find("#testo").val(document.getElementsByClassName(valore)[1].childNodes[0].nodeValue);
  177.                               modal.find("#data").val(document.getElementsByClassName(valore)[2].childNodes[0].nodeValue);
  178.                               modal.find("#titoloprecedente").val(document.getElementsByClassName(valore)[0].childNodes[0].nodeValue);
  179.                               modal.find("#testoprecedente").val(document.getElementsByClassName(valore)[1].childNodes[0].nodeValue);
  180.                              
  181.                              
  182.                             })
  183.  
  184.                         $('#alertelimina').on('show.bs.modal', function (event) {
  185.                            
  186.                            
  187.                            
  188.                            
  189.                               var button = $(event.relatedTarget) // Button that triggered the modal
  190.                               var valore = button.data('whatever') // Extract info from data-* attributes
  191.                               // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
  192.                               // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
  193.                              
  194.                               var modal = $(this)
  195.                              
  196.                               modal.find("#titolo").val(document.getElementsByClassName(valore)[0].childNodes[0].nodeValue);
  197.                               // modal.find("#testo").val(document.getElementsByClassName(valore)[1].childNodes[0].nodeValue);
  198.                               modal.find("#data").val(document.getElementsByClassName(valore)[2].childNodes[0].nodeValue);
  199.                              
  200.                              
  201.                             }) 
  202.  
  203.                         // autocompletamento della ricerca con jquery ui
  204.                         $(function() {
  205.                             $("#tags")
  206.                                     .autocomplete(
  207.                                             {
  208.                                                 source : availableTags,
  209.                                                 select : function(event, ui) {
  210.                                                     var indice = ui.item.valore;
  211.  
  212.                                                     var notatrovata = document
  213.                                                             .getElementById(indice).innerHTML;
  214.                                                     // potrei fare il primo figlio di trovata ma non funziona
  215.                                                     document
  216.                                                             .getElementById("poptrovata").innerHTML = notatrovata;
  217.                                                     $('#trovata').modal('show');
  218.  
  219.                                                 }
  220.  
  221.                                             });
  222.                         });
  223.  
  224.                     });
  225.  
  226.     //funzione per cancellare il popup di errore dopo 2 secondi
  227.     function nascondipopuperrore() {
  228.         $('#alerterrori').modal('hide');
  229.  
  230.     }
  231.  
  232.     //funzione per cancellare il popup di avviso dopo 2 secondi
  233.     function nascondipopupavviso() {
  234.         $('#alerconferme').modal('hide');
  235.  
  236.     }
  237.  
  238.     // funzioni per il controllo dati
  239.  
  240.     //una funzione per controllare il testo inserito usando l'oggetto form del document passando il nome del form e il nome dell'elemento soggetto all'analisi , quando si preme il tasto invio
  241.     function controlloregistranote() {
  242.         var titolocotrollo = document.forms["formregistranote"]["titolo"].value;
  243.         var testocontrollo = document.forms["formregistranote"]["testo"].value;
  244.  
  245.         var testoavviso = null;
  246.         // il form myform e l'elemento fname e di questo prendo il suo valore inseritov
  247.         if (titolocotrollo == null || titolocotrollo == "") {
  248.             // se il testo e null o vuoto da un alert
  249.             document.getElementById("avviso").innerHTML = "Campo Titolo vuoto";
  250.             $('#alerterrori').modal('show');
  251.  
  252.             setTimeout("nascondipopuperrore()", 2000);
  253.             return false;
  254.             // utile per dire che il testo era sbagliato
  255.         }
  256.         if (testocontrollo == null || testocontrollo == "") {
  257.             // se il testo e null o vuoto da un alert
  258.             document.getElementById("avviso").innerHTML = "Campo Testo vuoto";
  259.             $('#alerterrori').modal('show');
  260.             setTimeout("nascondipopuperrore()", 2000);
  261.             return false;
  262.             // utile per dire che il testo era sbagliato
  263.         }
  264.     }
  265.  
  266.     function controllomodificanote() {
  267.         var titolocotrollo = document.forms["formmodificanote"]["titolo"].value;
  268.         var testocontrollo = document.forms["formmodificanote"]["testo"].value;
  269.  
  270.         var testoavviso = null;
  271.         // il form myform e l'elemento fname e di questo prendo il suo valore inseritov
  272.         if (titolocotrollo == null || titolocotrollo == "") {
  273.             // se il testo e null o vuoto da un alert
  274.             document.getElementById("avviso").innerHTML = "Campo Titolo vuoto";
  275.             $('#alerterrori').modal('show');
  276.  
  277.             setTimeout("nascondipopuperrore()", 2000);
  278.             return false;
  279.             // utile per dire che il testo era sbagliato
  280.         }
  281.         if (testocontrollo == null || testocontrollo == "") {
  282.             // se il testo e null o vuoto da un alert
  283.             document.getElementById("avviso").innerHTML = "Campo Testo vuoto";
  284.             $('#alerterrori').modal('show');
  285.             setTimeout("nascondipopuperrore()", 2000);
  286.             return false;
  287.             // utile per dire che il testo era sbagliato
  288.         }
  289.  
  290.     }
  291.  
  292.     // per ritornare lo stato di avvenuta o no creazione , modifica e eliminazione e condivisione
  293.     $(document)
  294.             .ready(
  295.                     function() {
  296.                         <%String stato = (String) sessione.getAttribute("stato"); // dalla sessione prendo il valore della chiave accessCount , devo fare ilcast per farlo diventare un intero poiche sono tutti oggetti%>
  297.                         var testostato = "<%=stato%>";
  298.                         // siccome ho due avvisi , uno di giallo per errori e una verde per le conferme , se nello stato c'e la parola utente all'inizio allora siccuramente e un avviso mentre un tutti gli altri casi e una conferma
  299.                         var indice = testostato.indexOf("Utente");
  300.  
  301.                         //maggiore di zero poiche e la posizione di dove inizia la parola utente dentro la frase siccome e all'inizio se c'e allora e zero
  302.                         if (indice >= 0) {
  303.                             document.getElementById("avviso").innerHTML = testostato;
  304.                             $('#alerterrori').modal('show');
  305.  
  306.                             setTimeout("nascondipopuperrore()", 2000);
  307.                             // poi setto lo stato a null poiche l'avviso e gia spuntato
  308. <%sessione.setAttribute("stato", "");%>
  309.     }
  310.  
  311.                         else if (testostato != "" && testostato != "null") {
  312.                             document.getElementById("conferme").innerHTML = testostato;
  313.                             $('#alerconferme').modal('show');
  314.  
  315.                             setTimeout("nascondipopupavviso()", 2000);
  316.                             // poi setto lo stato a null poiche l'avviso e gia spuntato
  317. <%sessione.setAttribute("stato", "");%>
  318.     }
  319.  
  320.                     })
  321. </script>
  322.  
  323.  
  324. </head>
  325. <!-- -------------------------------------------------------------------------BODY------------------------------------------------------------------------>
  326. <body>
  327.  
  328.     <!-- BARRA DI NAVIGAZIONE -->
  329.     <ul id="dropdown1" class="dropdown-content">
  330.         <li><a href="#!">Cucina</a></li>
  331.  
  332.     </ul>
  333.     <nav>
  334.         <div class="nav-wrapper">
  335.             <a href="#!" class="brand-logo">Logo</a>
  336.             <ul class="right hide-on-med-and-down">
  337.                 <li><a id="logout" href="logout">Logout</a></li>
  338.             </ul>
  339.         </div>
  340.     </nav>
  341.  
  342.     <!-- BARRA DI RICERCA  -->
  343.     <div class="container">
  344.         <div class="modal-dialog">
  345.             <div class="modal-content">
  346.                 <div class="input-group input-group-lg">
  347.                     <span class="input-group-addon" id="sizing-addon1">Cerca</span> <input
  348.                         id="tags" type="text" class="form-control" placeholder="Titolo"
  349.                         aria-describedby="sizing-addon1">
  350.                 </div>
  351.             </div>
  352.         </div>
  353.     </div>
  354.     <!-- FINE BARRA DI RICERCA  -->
  355.  
  356.     <!-- CONTENITORE NOTE  -->
  357.     <div class="row">
  358.         <div class="col s12 m12" id="note" align="center"></div>
  359.     </div>
  360.     <!-- CONTENITORE NOTE  -->
  361.  
  362.  
  363.  
  364.     <!-- registra nota -->
  365.     <div class="modal fade" id="alertregistra" tabindex="-1" role="dialog"
  366.         aria-labelledby="myModalLabel">
  367.         <div class="modal-dialog" role="document">
  368.             <div class="modal-content">
  369.  
  370.                 <form name="formregistranote" method="post" action="aggiunginota"
  371.                     onsubmit="return controlloregistranote();">
  372.  
  373.                     <div class="modal-header">
  374.                         <h4 class="modal-title" id="myModalLabel">Creazione Nota</h4>
  375.                     </div>
  376.                     <div class="modal-body">
  377.  
  378.  
  379.                         <div class="form-group">
  380.                             <label for="niente">Titolo:</label>
  381.                             <input id="titolo" type="text" class="validate" name="titolo" placeholder="Inserisci Titolo">
  382.                             <label for="titolo" data-error="Errore" data-success=""></label>
  383.                         </div>
  384.  
  385.                        
  386.            
  387.                         <div class="form-group">
  388.                             <label for="niente2">Testo:</label>
  389.                             <textarea id="testo" class="required" rows="5" name="testo" placeholder="Inserisci Testo"></textarea>
  390.                             <label for="testo" data-error="Errore" data-success=""></label>
  391.                         </div>
  392.                     </div>
  393.  
  394.                     <div class="modal-footer">
  395.                         <button type="submit" class="btn btn-primary">Crea</button>
  396.                     </div>
  397.                 </form>
  398.             </div>
  399.         </div>
  400.     </div>
  401.  
  402.     <!-- BOTTONE AGGIUNGI NOTA -->
  403.     <div class="fixed-action-btn" style="bottom: 45px; right: 24px;">
  404.         <a data-target="alertregistra"
  405.             class="btn-floating btn-large waves-effect waves-light red modal-trigger"><i
  406.             class="material-icons">add</i></a>
  407.     </div>
  408.     <!-- FINE BOTTONE AGGIUNGI NOTA -->
  409.  
  410.     <!-- popup della nota trovata che riempio con i dati trovati e la mostro come popup -->
  411.     <div class="modal fade" id="trovata" tabindex="-1" role="dialog"
  412.         aria-labelledby="myModalLabel">
  413.         <div class="modal-dialog" role="document" id="poptrovata"></div>
  414.     </div>
  415.  
  416.  
  417.     <!-- avviso per gli errori di input  -->
  418.     <div class="modal" id="alerterrori" tabindex="-1" role="dialog"
  419.         aria-labelledby="myModalLabel">
  420.  
  421.         <div class="modal-dialog" role="document">
  422.  
  423.             <div class="alert alert-warning">
  424.  
  425.                 <p id="avviso"></p>
  426.             </div>
  427.         </div>
  428.     </div>
  429.  
  430.  
  431.     <!-- avviso per azioni corretttamente effettuate  -->
  432.     <div class="modal fade" id="alerconferme" tabindex="-1" role="dialog"
  433.         aria-labelledby="myModalLabel">
  434.  
  435.         <div class="modal-dialog" role="document">
  436.  
  437.             <div class="alert alert-success alert-dismissable">
  438.  
  439.                 <strong id="conferme"></strong>
  440.             </div>
  441.         </div>
  442.     </div>
  443.  
  444.  
  445.     <script type="text/javascript"
  446.         src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
  447.     <script type="text/javascript" src="js/materialize.min.js"></script>
  448. </body>
  449. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement