From 98e5c644ded2497b030fab8e29f3a8b64c22441d Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Tue, 06 Mar 2018 07:02:45 +0000
Subject: [PATCH] Abspieler speichern gebaut

---
 src/java/de/uhilger/radiozentrale/api/AbspielerApi.java |   66 +++++++++++++++++++++++++++++++++
 web/app.js                                              |   27 +++++++++----
 2 files changed, 84 insertions(+), 9 deletions(-)

diff --git a/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java b/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
new file mode 100644
index 0000000..79effad
--- /dev/null
+++ b/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
@@ -0,0 +1,66 @@
+/*
+ *  Radiozentrale - Webradio App
+ *  Copyright (C) 2018 Ulrich Hilger, http://uhilger.de
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see http://www.gnu.org/licenses/
+ */
+
+package de.uhilger.radiozentrale.api;
+
+import de.uhilger.baselink.PersistenceManager;
+import de.uhilger.radiozentrale.daten.Abspieler;
+import de.uhilger.radiozentrale.web.Initialiser;
+import java.sql.Connection;
+import java.util.logging.Logger;
+
+/**
+ *
+ */
+public class AbspielerApi extends DbApi {
+
+  private static final Logger logger = Logger.getLogger(AbspielerApi.class.getName());
+
+  public static final String KEY_ABSPIELER_ID = "abs_id";
+  
+  /**
+   * TODO selected bei anderen Abspielern entfernen, wenn der neue Abspieler 
+   * selected sein soll
+   * @param abspieler
+   * @return 
+   */
+  public Abspieler neuerAbspieler(Abspieler abspieler) {
+    Abspieler neuerAbspieler = null;
+    PersistenceManager db = getDb();
+    Connection c = db.getConnection();
+    db.startTransaction(c);
+    int nextKey = getNextId(db, KEY_ABSPIELER_ID);
+    if(nextKey > -1) {
+      abspieler.setId(nextKey);
+      Object o = getDb().insert(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+      if(o instanceof Abspieler) {
+        neuerAbspieler = (Abspieler) o;
+        db.commit(c);
+        logger.fine("Abspieler erstellt: " + abspieler.getId() + " " + abspieler.getName());
+      } else {
+        db.rollback(c);
+        logger.info("Abspieler konnte nicht erstellt werden: " + abspieler.getName());
+      } 
+    } else {
+      db.rollback(c);
+      logger.info("Abspieler konnte nicht erstellt werden, nextKey ist -1");
+    }
+    return neuerAbspieler;  
+    
+  }
+}
diff --git a/web/app.js b/web/app.js
index b474eb6..107ecc2 100644
--- a/web/app.js
+++ b/web/app.js
@@ -153,6 +153,7 @@
 }
 
 function app_abspieler_neu(abspieler) {
+  app_neuen_abspieler_speichern(abspieler);
   var html = Mustache.render(templateCache[TPL_ABSPIELER_EINTRAG], abspieler);
   if(abspieler.zustand === 'selected') {
     $.each($(".abspieler-auswahl option:selected"), function() {
@@ -466,28 +467,36 @@
   });
 }
 
+function app_crud_api(api, methode, o) {
+  var obj = serialisieren(o);
+  var url = api + methode;
+  $.post( url, 'p=' + obj, function( result ) {
+    console.log( result );
+  }, "json");
+}
+
 /* SenderApi */
 
 var URL_SENDER_API = "api?c=de.uhilger.radiozentrale.api.SenderApi&m=";
 
 function app_neuen_sender_speichern(sender) {
-  app_sender_api('neuerSender', sender);
+  app_crud_api(URL_SENDER_API, 'neuerSender', sender);
 }
 
 function app_sender_aendern(sender) {
-  app_sender_api('senderAendern', sender);
+  app_crud_api(URL_SENDER_API, 'senderAendern', sender);
 }
 
 function app_sender_entfernen(sender) {
-  app_sender_api('senderLoeschen', sender);
+  app_crud_api(URL_SENDER_API, 'senderLoeschen', sender);
 }
 
-function app_sender_api(methode, sender) {
-  var obj = serialisieren(sender);
-  var url = URL_SENDER_API + methode;
-  $.post( url, 'p=' + obj, function( result ) {
-    console.log( result );
-  }, "json");
+/* AbspielerApi */
+
+var URL_ABSPIELER_API = "api?c=de.uhilger.radiozentrale.api.AbspielerApi&m=";
+
+function app_neuen_abspieler_speichern(abspieler) {
+  app_crud_api(URL_ABSPIELER_API, 'neuerAbspieler', abspieler);
 }
 
 /* Hilfsfunktionen */

--
Gitblit v1.9.3