? draggableviews-393530.patch
? draggableviews-436124.patch
? draggableviews-464870.patch
? draggableviews-536846.patch
? draggableviews-546142.patch
? draggableviews-DRUPAL-6--3_arg_schema.patch
? draggableviews_450070_blank_fields_fix.patch
? draggableviews_arg_ordering.patch
? modules/draggablebooks
? views/draggableviews_arg_ordering.patch
Index: draggableviews.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews.inc,v
retrieving revision 1.7.2.32
diff -u -p -r1.7.2.32 draggableviews.inc
--- draggableviews.inc	19 Aug 2009 12:28:38 -0000	1.7.2.32
+++ draggableviews.inc	21 Aug 2009 14:41:55 -0000
@@ -89,7 +89,7 @@ function _draggableviews_info($view, $in
     $info = array();
 
     // extract draggableviews settings.
-    if ($options['tabledrag_order']['field'] != 'none') {
+    if ($options['tabledrag_order']['field'] && strcmp($options['tabledrag_order']['field'], 'none') != 0) {
       if ($handler = _draggableviews_init_handler($options['tabledrag_order'], $view)) {
         $info['order'] = array(
           'field' => array(
@@ -107,7 +107,7 @@ function _draggableviews_info($view, $in
       }
       $info['order']['visible'] = strcmp($options['tabledrag_order_visible']['visible'], 'visible') == 0 ? TRUE : FALSE;
 
-      if ($options['tabledrag_hierarchy']['field'] != 'none') {
+      if ($options['tabledrag_hierarchy']['field'] && strcmp($options['tabledrag_hierarchy']['field'], 'none') != 0) {
         if ($handler = _draggableviews_init_handler($options['tabledrag_hierarchy'], $view)) {
           $info['hierarchy'] = array(
             'field' => array(
Index: draggableviews.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews.install,v
retrieving revision 1.6.2.8
diff -u -p -r1.6.2.8 draggableviews.install
--- draggableviews.install	19 Aug 2009 12:28:38 -0000	1.6.2.8
+++ draggableviews.install	21 Aug 2009 14:41:55 -0000
@@ -27,11 +27,12 @@ function draggableviews_schema() {
         'unsigned' => TRUE,
         'not null' => TRUE,
       ),
-      'vid' => array(
+      'view_name' => array(
         'description' => t('The view id.'),
-        'type' => 'int',
-        'unsigned' => TRUE,
+        'type' => 'varchar',
+        'length' => 32,
         'not null' => TRUE,
+        'default' => '',
       ),
       'collapsed' => array(
         'description' => t('The state.'),
@@ -41,18 +42,18 @@ function draggableviews_schema() {
         'default' => 0,
       ),
     ),
-    'primary key' => array('uid', 'parent_nid', 'vid'),
+    'primary key' => array('uid', 'parent_nid', 'view_name'),
   );
 
   $schema['draggableviews_structure'] = array(
     'description' => t('The table saves the order settings of an draggableview.'),
     'fields' => array(
-      'vid' => array(
+      'view_name' => array(
         'description' => t('Makes the order unique for each view.'),
-        'type' => 'int',
-        'unsigned' => TRUE,
+        'type' => 'varchar',
+        'length' => 32,
         'not null' => TRUE,
-        'default' => 0,
+        'default' => '',
       ),
       'nid' => array(
         'description' => t('The node id.'),
@@ -81,7 +82,7 @@ function draggableviews_schema() {
         'default' => 0,
       ),
     ),
-    'primary key' => array('nid', 'vid', 'delta', 'args'),
+    'primary key' => array('nid', 'view_name', 'delta', 'args'),
   );
   return $schema;
 }
@@ -132,3 +133,32 @@ function draggableviews_update_6400() {
   return $ret;
 }
 
+/**
+ * Alter schema to add arguments field
+ */
+function draggableviews_update_6401() {
+  $ret = array();
+  db_drop_primary_key($ret, 'draggableviews_structure');
+  db_add_field($ret, 'draggableviews_structure', 'view_name', array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''));
+  // Update code.
+  $result = db_query('SELECT vid FROM {draggableviews_structure}');
+  while($row = db_fetch_object($result)) {
+    $view = db_fetch_object(db_query('SELECT name FROM {views_view} WHERE vid=%d', $row->vid));
+    db_query("UPDATE {draggableviews_structure} SET view_name='%s' WHERE vid=%d", $view->name, $row->vid);
+  }
+  db_drop_field($ret, 'draggableviews_structure', 'vid');
+  db_add_primary_key($ret, 'draggableviews_structure', array('nid', 'view_name', 'delta', 'args'));
+
+  db_drop_primary_key($ret, 'draggableviews_collapsed');
+  db_add_field($ret, 'draggableviews_collapsed', 'view_name', array('type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => ''));
+  // Update code.
+  $result = db_query('SELECT vid FROM {draggableviews_collapsed}');
+  while($row = db_fetch_object($result)) {
+    $view = db_fetch_object(db_query('SELECT name FROM {views_view} WHERE vid=%d', $row->vid));
+    db_query("UPDATE {draggableviews_collapsed} SET view_name='%s' WHERE vid=%d", $view->name, $row->vid);
+  }
+  db_drop_field($ret, 'draggableviews_collapsed', 'vid');
+  db_add_primary_key($ret, 'draggableviews_collapsed', array('uid', 'parent_nid', 'view_name'));
+
+  return $ret;
+}
\ No newline at end of file
Index: draggableviews.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews.module,v
retrieving revision 1.6.2.26
diff -u -p -r1.6.2.26 draggableviews.module
--- draggableviews.module	19 Aug 2009 14:17:58 -0000	1.6.2.26
+++ draggableviews.module	21 Aug 2009 14:41:55 -0000
@@ -139,14 +139,16 @@ function draggableviews_theme() {
   foreach ($views AS $view) {
     $view->init_display();
     foreach ($view->display AS $display_id => $display) {
-      if (strcmp($display->handler->get_plugin('style')->definition['handler'], 'draggableviews_plugin_style_draggabletable') == 0) {
-        $array['draggableviews_view_draggabletable_form_'. $view->name .'_'. $display_id] = array(
-          'template' => 'draggableviews-view-draggabletable-form',
-          'preprocess functions' => array(
-            'template_preprocess_draggableviews_view_draggabletable_form',
-          ),
-          'arguments' => array('form' => NULL),
-        );
+      if (is_object($display->handler)) {
+        if (strcmp($display->handler->get_plugin('style')->definition['handler'], 'draggableviews_plugin_style_draggabletable') == 0) {
+          $array['draggableviews_view_draggabletable_form_'. $view->name .'_'. $display_id] = array(
+            'template' => 'draggableviews-view-draggabletable-form',
+            'preprocess functions' => array(
+              'template_preprocess_draggableviews_view_draggabletable_form',
+            ),
+            'arguments' => array('form' => NULL),
+          );
+        }
       }
     }
   }
@@ -166,11 +168,6 @@ function draggableviews_views_pre_execut
     return;
   }
 
-  if (!is_numeric($view->vid)) {
-    // The view hasn't been saved yet. Can't do anything.
-    return;
-  }
-
   if (isset($view->draggableviews_info)) {
     // Don't fall in an infinit recursion when the view gets re-executed.
     return;
@@ -396,12 +393,12 @@ function draggableviews_view_draggableta
       if (ereg('draggableviews_collapsed_', $key)) {
         $parent_nid = drupal_substr($key, 25);
         db_query("DELETE FROM {draggableviews_collapsed}
-                  WHERE uid=%d AND parent_nid=%d AND vid=%d",
-                  $uid, $parent_nid, $view->vid);
+                  WHERE uid=%d AND parent_nid=%d AND view_name='%s'",
+                  $uid, $parent_nid, $view->name);
 
         db_query("INSERT INTO {draggableviews_collapsed}
-                  (uid, vid, parent_nid, collapsed) VALUES (%d, %d, %d, %d)",
-                  $uid, $view->vid, $parent_nid, $val);
+                  (uid, view_name, parent_nid, collapsed) VALUES (%d, '%s', %d, %d)",
+                  $uid, $view->name, $parent_nid, $val);
       }
     }
   }
Index: draggableviews_theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews_theme.inc,v
retrieving revision 1.6.2.24
diff -u -p -r1.6.2.24 draggableviews_theme.inc
--- draggableviews_theme.inc	19 Aug 2009 12:28:38 -0000	1.6.2.24
+++ draggableviews_theme.inc	21 Aug 2009 14:41:55 -0000
@@ -250,7 +250,7 @@ function template_preprocess_draggablevi
   if (isset($info['hierarchy'])) {
     // Fetch expand information from database.
     $uid = $info['expand_links']['by_uid'] ? $user->uid : 0;
-    $result = db_query("SELECT parent_nid, collapsed FROM {draggableviews_collapsed} WHERE uid=%d AND vid=%d", $uid, $view->vid);
+    $result = db_query("SELECT parent_nid, collapsed FROM {draggableviews_collapsed} WHERE uid=%d AND view_name='%s'", $uid, $view->name);
     $states = array();
     while ($state = db_fetch_object($result)) {
       $states[$state->parent_nid] = $state->collapsed;
@@ -306,10 +306,10 @@ function template_preprocess_draggablevi
   $vars['view'] = theme($style_plugin->theme_functions(), $style_plugin->view, $style_plugin->options, $style_plugin->view->result, '');
 
   // Don't render the submit form..
-  // - if view hasn't been saved yet or
   // - if user has no access or
   // - if structure is locked.
-  if (is_numeric($style_plugin->view->vid) && user_access('Allow Reordering') && !$info['locked']) {
+
+  if (user_access('Allow Reordering') && !$info['locked']) {
     $vars['form'] =  drupal_render($vars['form']);
   }
   else {
Index: implementations/draggableviews_handler_native.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/implementations/Attic/draggableviews_handler_native.inc,v
retrieving revision 1.1.2.8
diff -u -p -r1.1.2.8 draggableviews_handler_native.inc
--- implementations/draggableviews_handler_native.inc	17 Aug 2009 23:46:45 -0000	1.1.2.8
+++ implementations/draggableviews_handler_native.inc	21 Aug 2009 14:41:55 -0000
@@ -34,8 +34,8 @@ class draggableviews_handler_native {
       $args = implode('/', $this->view->args);
     }
 
-    db_query("DELETE FROM {draggableviews_structure} WHERE vid=%d AND nid=%d AND delta=%d AND args='%s'", $this->view->vid, $nid, $this->delta, $args);
-    db_query("INSERT INTO {draggableviews_structure}(vid, nid, delta, value, args) VALUES(%d, %d, %d, %d, '%s')", $this->view->vid, $nid, $this->delta, $value, $args);
+    db_query("DELETE FROM {draggableviews_structure} WHERE view_name='%s' AND nid=%d AND delta=%d AND args='%s'", $this->view->name, $nid, $this->delta, $args);
+    db_query("INSERT INTO {draggableviews_structure}(view_name, nid, delta, value, args) VALUES('%s', %d, %d, %d, '%s')", $this->view->name, $nid, $this->delta, $value, $args);
   }
 
   function get_form_element($value, $attributes = array()) {
Index: views/draggableviews.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/views/draggableviews.views.inc,v
retrieving revision 1.1.2.9
diff -u -p -r1.1.2.9 draggableviews.views.inc
--- views/draggableviews.views.inc	19 Aug 2009 12:28:38 -0000	1.1.2.9
+++ views/draggableviews.views.inc	21 Aug 2009 14:41:55 -0000
@@ -115,10 +115,9 @@ function draggableviews_views_query_alte
   for ($i = 0; $i < 2; $i++) {
     if (isset($query->table_queue['draggableviews_structure_'. $view->base_table . $i])) {
       $query->table_queue['draggableviews_structure_'. $view->base_table . $i]['join']->extra[] = array(
-        'field' => 'vid',
+        'field' => 'view_name',
         'operator' => '=',
-        'value' => is_numeric($view->vid) ? $view->vid : 0,
-        'numeric' => TRUE,
+        'value' => $view->name,
       );
       $args = NULL;
       if (!empty($view->style_plugin->options['draggableviews_arguments']['use_args'])) {
Index: views/draggableviews_plugin_style_draggabletable.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/views/draggableviews_plugin_style_draggabletable.inc,v
retrieving revision 1.1.2.26
diff -u -p -r1.1.2.26 draggableviews_plugin_style_draggabletable.inc
--- views/draggableviews_plugin_style_draggabletable.inc	19 Aug 2009 12:28:38 -0000	1.1.2.26
+++ views/draggableviews_plugin_style_draggabletable.inc	21 Aug 2009 14:41:55 -0000
@@ -340,14 +340,8 @@ class draggableviews_plugin_style_dragga
     // the same page we need to use an unique form_id for each display.
     // Same displays of the same view can share the same id because the
     // concerned views object is the same.
+    $form_id = 'draggableviews_view_draggabletable_form_'. $this->view->name .'_'. $this->view->current_display;
 
-    if (is_numeric($this->view->vid)) {
-      // If the view has already been saved use the name and the display id to build the form id.
-      $form_id = 'draggableviews_view_draggabletable_form_'. $this->view->name .'_'. $this->view->current_display;
-    }
-    else {
-      $form_id = 'draggableviews_view_draggabletable_form_new';
-    }
     return drupal_get_form($form_id, $this);
   }
 }
