]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
add functionality to delete recordings 16/head
authorThies Schroeder <mail@thies-schroeder.de>
Fri, 18 Feb 2011 21:11:24 +0000 (22:11 +0100)
committerThies Schroeder <mail@thies-schroeder.de>
Fri, 18 Feb 2011 21:11:24 +0000 (22:11 +0100)
src/dvr/dvr.h
src/dvr/dvr_db.c
src/webui/extjs.c
src/webui/static/app/dvr.js

index 888fc98678afa2ae99f875202aa3105b4562b13f..f31249ff30b0dff6c4d9d270bd91fddce4aea533 100644 (file)
@@ -274,6 +274,8 @@ void dvr_extra_time_pre_set(dvr_config_t *cfg, int d);
 
 void dvr_extra_time_post_set(dvr_config_t *cfg, int d);
 
+int dvr_entry_delete(dvr_entry_t *de);
+
 /**
  * Query interface
  */
index c7933c62cdbeaa2766899f2ddb23a87d8e44a21d..254c7745e101e0f223d86dda0610fc3f407b5b52 100644 (file)
@@ -1160,3 +1160,18 @@ dvr_val2pri(dvr_prio_t v)
 {
   return val2str(v, priotab) ?: "invalid";
 }
+
+int
+dvr_entry_delete(dvr_entry_t *de)
+{
+  int result;
+  tvhlog(LOG_DEBUG, "dvr_db", "Going to delete recording '%s'", de->de_filename);
+  result = unlink(de->de_filename);
+  if( result == 0 || result == ENOENT )
+  {
+    dvr_entry_remove(de);
+  }
+  return result;
+       
+}
+
index e611106419c447dd2f7cb861acbadfe48c5acda9..09349a05cc415930309bc4d8df3c0a99321dd15d 100644 (file)
@@ -804,6 +804,19 @@ extjs_dvr(http_connection_t *hc, const char *remain, void *opaque)
 
     out = htsmsg_create_map();
     htsmsg_add_u32(out, "success", 1);
+  
+  } else if(!strcmp(op, "deleteEntry")) {
+    s = http_arg_get(&hc->hc_req_args, "entryId");
+
+    if((de = dvr_entry_find_by_id(atoi(s))) == NULL) {
+      pthread_mutex_unlock(&global_lock);
+      return HTTP_STATUS_BAD_REQUEST;
+    }
+
+    dvr_entry_delete(de);
+
+    out = htsmsg_create_map();
+    htsmsg_add_u32(out, "success", 1);
 
   } else if(!strcmp(op, "createEntry")) {
 
index 26c578d71d5ccfb1d6fc99aadab3fbb80e47aab7..7439c7a85afee2ac66be2e34f23ec92b54d8f332 100644 (file)
@@ -98,6 +98,14 @@ tvheadend.dvrDetails = function(entry) {
            text: "Abort recording"
        });
        break;
+       case 'completedError':
+       case 'completed':
+       win.addButton({
+           handler: deleteEvent, 
+           text: "Delete recording"
+       
+       });
+       break;
     }
 
 
@@ -119,6 +127,21 @@ tvheadend.dvrDetails = function(entry) {
            }
        });
     }
+    
+    function deleteEvent() {
+       Ext.Ajax.request({
+           url: 'dvr',
+           params: {entryId: entry.id, op: 'deleteEntry'},
+
+           success:function(response, options) {
+               win.close();v
+           },
+
+           failure:function(response, options) {
+               Ext.MessageBox.alert('DVR', response.statusText);
+           }
+       });
+    }
 
 }