Editing of network data completed
[mailer.git] / inc / libs / network_functions.php
index 998dbd42ed75b23ec2d62049130cf9de7f4e9146..6c186eac852e989ddb905d84b9fe7dfc797a6d26 100644 (file)
@@ -117,6 +117,18 @@ LIMIT 1",
        return $networkData;
 }
 
+// Updates given network (id) with data from array
+function doNetworkUpdateDataByArray ($id, $networkData) {
+       // Ids lower one are not accepted
+       if ($id < 1) {
+               // Not good, should be fixed
+               debug_report_bug('Network id ' . $id . ' is smaller than 1.');
+       } // END - if
+
+       // Just call our inner method
+       return adminSaveSettings($networkData, '_network_data', sprintf("`network_id`=%s", bigintval($id)), array(), false, false);
+}
+
 //------------------------------------------------------------------------------
 //                             Call-back functions
 //------------------------------------------------------------------------------
@@ -172,16 +184,27 @@ function doAdminNetworkProcessHandlenetworkForm () {
                                        // Add color
                                        $networkData['sw'] = $SW;
 
-                                       // Make selection box for network_request_type
-                                       $networkData['network_request_type'] = generateOptionList(
-                                               '/ARRAY/',
-                                               array('GET','POST'),
-                                               array(getMessage('ADMIN_NETWORK_REQUEST_TYPE_GET'), getMessage('ADMIN_NETWORK_REQUEST_TYPE_POST')),
-                                               $networkData['network_request_type']
-                                       );
+                                       if (isPostRequestElementSet('edit')) {
+                                               // Make selection box for network_request_type
+                                               $networkData['network_request_type'] = generateOptionList(
+                                                       '/ARRAY/',
+                                                       array('GET','POST'),
+                                                       array(getMessage('ADMIN_NETWORK_REQUEST_TYPE_GET'), getMessage('ADMIN_NETWORK_REQUEST_TYPE_POST')),
+                                                       $networkData['network_request_type']
+                                               );
+
+                                               // Add row template and switch color
+                                               $OUT .= loadTemplate('admin_edit_networks_row', true, $networkData);
+                                       } elseif (isPostRequestElementSet('del')) {
+                                               // Translate the request type
+                                               $networkData['network_request_type'] = getMessage('ADMIN_NETWORK_REQUEST_TYPE_' . $networkData['network_request_type']);
 
-                                       // Add row template and switch color
-                                       $OUT .= loadTemplate('admin_edit_networks_row', true, $networkData);
+                                               // Add row template and switch color
+                                               $OUT .= loadTemplate('admin_del_networks_row', true, $networkData);
+                                       } else {
+                                               // Problem!
+                                               debug_report_bug('Cannot detect edit/del.');
+                                       }
                                        $SW = 3 - $SW;
                                } // END - if
                        } // END - if
@@ -190,7 +213,14 @@ function doAdminNetworkProcessHandlenetworkForm () {
                // If we have no rows, we don't need to display the edit form
                if (!empty($OUT)) {
                        // Output main template
-                       loadTemplate('admin_edit_networks', false, $OUT);
+                       if (isPostRequestElementSet('edit')) {
+                               loadTemplate('admin_edit_networks', false, $OUT);
+                       } elseif (isPostRequestElementSet('del')) {
+                               loadTemplate('admin_del_networks', false, $OUT);
+                       } else {
+                               // Problem!
+                               debug_report_bug('Cannot detect edit/del.');
+                       }
 
                        // Don't display the list/add new form
                        $GLOBALS['network_display'] = false;
@@ -201,5 +231,50 @@ function doAdminNetworkProcessHandlenetworkForm () {
        } // END - if
 }
 
+// Changes given networks
+function doAdminNetworkProcessChangenetworkForm () {
+       // Do we have selections?
+       if (countPostSelection() > 0) {
+               // By default nothing is updated
+               $updated = 0;
+
+               // Something has been selected, so start updating them
+               foreach (postRequestElement('sel') as $id => $sel) {
+                       // Update this entry?
+                       if ($sel == 1) {
+                               // Init data array
+                               $networkData = array();
+
+                               // Transfer whole array, except 'sel'
+                               foreach (postRequestArray() as $key=>$entry) {
+                                       // Skip 'sel' and submit button
+                                       if (in_array($key, array('sel', 'change'))) continue;
+
+                                       // Do we have this enty?
+                                       if (!isset($entry[$id])) {
+                                               // Not found, needs fixing
+                                               debug_report_bug('No entry in key=' . $key . ', id=' . $id . ' found.');
+                                       } // END - if
+
+                                       // Add this entry
+                                       $networkData[$key] = $entry[$id];
+                               } // END - foreach
+
+                               // Update the network data
+                               $updated += doNetworkUpdateDataByArray($id, $networkData);
+                       } // END - if
+               } // END - foreach
+
+               // Do we have updates?
+               if ($updated > 0) {
+                       // Updates done
+                       loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_NETWORK_UPDATED'), $updated));
+               } else {
+                       // Nothing changed
+                       loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NETWORK_NOTHING_CHANGED'));
+               }
+       } // END - if
+}
+
 // [EOF]
 ?>