? 461568-dc-all.patch
? 461568-dc.patch
Index: domain_content.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain/domain_content/domain_content.admin.inc,v
retrieving revision 1.10
diff -u -p -r1.10 domain_content.admin.inc
--- domain_content.admin.inc	25 Mar 2009 16:23:42 -0000	1.10
+++ domain_content.admin.inc	13 Jun 2009 21:08:53 -0000
@@ -56,7 +56,9 @@ function domain_content_view($domain_id 
   }
   else if ($all_affiliates) {
     $_domain['site_grant'] = TRUE;
-    drupal_set_title(t('Content for all affiliate sites'));
+  }
+  else if (!$all_affiliates && is_null($domain_id)) {
+    $_domain['site_grant'] = TRUE;
   }
   // KILLSWITCH CASE: returns an error
   else {
@@ -103,7 +105,7 @@ function domain_content_form($form_state
   $filter['join'] .= " INNER JOIN {domain_access} dac ON dac.nid = n.nid ";
   $arg = arg(3);
 
-  if ($arg != 'all') {
+  if ($arg != 'all' && $arg != 'overview') {
     // In this case, we must check the domain_id grant.
     // We use intval() here for security, since we are not filtering the query parameter otherwise.
     if (empty($filter['where'])) {
@@ -113,7 +115,7 @@ function domain_content_form($form_state
       $filter['where'] .= " AND dac.realm = 'domain_id' AND dac.gid = ". intval($_domain['domain_id']) ." ";
     }
   }
-  else {
+  else if ($arg != 'overview') {
     // Or check the domain_site grant.
     if (empty($filter['where'])) {
       $filter['where'] = " WHERE dac.realm = 'domain_site' AND dac.gid = 0 ";
@@ -122,6 +124,13 @@ function domain_content_form($form_state
       $filter['where'] .= " AND dac.realm = 'domain_site' AND dac.gid = 0 ";
     }
   }
+  else {
+    drupal_add_css(drupal_get_path('module', 'domain_content') .'/domain_content.css');
+    $form['markup'] = array(
+      '#weight' => -1,
+      '#value' => t('Below is all content your account may access. The titles are color-coded and marked with an * to show whether the content is <span class="domain-visible">available</span> or <span class="domain-invisible">unavailable</span> for viewing on the active domain, %domain', array('%domain' => $domain['subdomain'])),
+    );
+  }
 
   $result = pager_query(db_rewrite_sql('SELECT n.*, u.name, u.uid FROM {node} n '. $filter['join'] .' INNER JOIN {users} u ON n.uid = u.uid '. $filter['where'] .' ORDER BY n.changed DESC'), 50, 0, NULL, $filter['args']);
 
@@ -145,16 +154,34 @@ function domain_content_form($form_state
     if ($message) {
       $check[$node->nid] = TRUE;
     }
-    $form['title'][$node->nid] = array('#value' => l($node->title, 'node/'. $node->nid) .' '. theme('mark', node_mark($node->nid, $node->changed)));
+        
+    // Load the domain_access rules directly from domain_nodeapi().
+    domain_nodeapi($node, 'load');
+    
+    // The root domain is stored as -1, but cast as zero in the global variable.
+    $inv_key = ($_domain['domain_id'] == 0) ? -1 : $_domain['domain_id'];
+    
+    // If the current domain is present in the assigned domains for this node
+    // or if it's set to display on all affiliates, then add the 'domain-visible'
+    // class to the node link
+    if (in_array($inv_key, $node->domains) || $node->domain_site) {
+      $domain_visibility = "domain-visible";
+      $visible = ' * ';
+    } 
+    else {
+      $domain_visibility = "domain-invisible";
+      $visible = '';
+    }
+    $attributes = array('class' => $domain_visibility);
+    
+    $form['title'][$node->nid] = array('#value' => l($node->title, 'node/'. $node->nid, array('attributes' => $attributes)) .' '. theme('mark', node_mark($node->nid, $node->changed)) . $visible);
     $form['name'][$node->nid] =  array('#value' => check_plain(node_get_types('name', $node)));
     $form['username'][$node->nid] = array('#value' => theme('username', $node));
     $form['status'][$node->nid] =  array('#value' =>  ($node->status ? t('published') : t('not published')));
-    // This routine controls if the editor can see the 'edit' link.
-    // Load the domain_access rules directly from domain_nodeapi().
-    domain_nodeapi($node, 'load');
 
     $node_domains = array();
 
+    // This routine controls if the editor can see the 'edit' link.
     if (!empty($node->domains)) {
       foreach ($node->domains as $domain) {
         // Can the user edit this node.  We use += here since this is an array loop.
@@ -338,6 +365,9 @@ function theme_domain_content_admin_node
   $output = '';
   $output .= drupal_render($form['options']);
   $output .= drupal_render($form['domain']);
+  if (isset($form['markup'])) {
+    $output .= drupal_render($form['markup']);
+  }
   if (isset($form['title']) && is_array($form['title'])) {
     foreach (element_children($form['title']) as $key) {
       $row = array();
Index: domain_content.css
===================================================================
RCS file: domain_content.css
diff -N domain_content.css
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ domain_content.css	13 Jun 2009 21:08:53 -0000
@@ -0,0 +1,13 @@
+#domain-content-form span.domain-visible,
+#domain-content-form a.domain-visible,
+#domain-content-form a.domain-visible:hover {
+  color: #090;
+  background-color: #cfc;
+}
+
+#domain-content-form span.domain-invisible,
+#domain-content-form a.domain-invisible,
+#domain-content-form a.domain-invisible:hover {
+  color: #900;
+  background-color: #fcc;
+}
Index: domain_content.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain/domain_content/domain_content.module,v
retrieving revision 1.28
diff -u -p -r1.28 domain_content.module
--- domain_content.module	31 May 2009 18:16:40 -0000	1.28
+++ domain_content.module	13 Jun 2009 21:08:53 -0000
@@ -29,14 +29,23 @@ function domain_content_menu() {
     'access callback' => 'domain_content_menu_check',
     'file' => 'domain_content.admin.inc',
   );
+  $items['admin/domain/content/overview'] = array(
+    'title' => 'All content',
+    'page callback' => 'domain_content_view',
+    'page arguments' => array(NULL, FALSE),
+    'access callback' => 'domain_content_menu_check',
+    'file' => 'domain_content.admin.inc',
+    'description' => 'View all content in the context of the current domain.',
+    'weight' => -10,
+  );
   $items['admin/domain/content/all'] = array(
-    'title' => 'Content for all affiliate sites',
+    'title' => 'Content assigned to all affiliates',
     'page callback' => 'domain_content_view',
     'page arguments' => array(NULL, TRUE),
     'access callback' => 'domain_content_menu_check',
     'file' => 'domain_content.admin.inc',
     'description' => 'View content assigned to all affiliate sites.',
-    'weight' => -10
+    'weight' => -8,
   );
   // Generate the list of active domains as menu items
   $domains = domain_domains();
@@ -78,7 +87,7 @@ function domain_content_menu_check() {
   if (user_access('administer nodes')) {
     return TRUE;
   }
-  if (user_access('edit domain nodes')) { // || user_access('set domain access')
+  if (user_access('edit domain nodes')) {
     return TRUE;
   }
   return FALSE;
