[pLog-svn] r6235 - in plog/trunk: class/action/admin class/controller class/view/admin js/ui/pages templates/admin

mark at devel.lifetype.net mark at devel.lifetype.net
Sat Mar 15 06:14:25 EDT 2008


Author: mark
Date: 2008-03-15 06:14:24 -0400 (Sat, 15 Mar 2008)
New Revision: 6235

Added:
   plog/trunk/class/action/admin/adminscanlocalesaction.class.php
   plog/trunk/js/ui/pages/sitelocales.js
   plog/trunk/templates/admin/sitelocales_table.template
Removed:
   plog/trunk/class/action/admin/adminaddlocaleaction.class.php
   plog/trunk/class/action/admin/adminnewlocaleaction.class.php
   plog/trunk/templates/admin/newlocale.template
Modified:
   plog/trunk/class/action/admin/admindeletelocalesaction.class.php
   plog/trunk/class/action/admin/adminsitelocalesaction.class.php
   plog/trunk/class/controller/admincontrollermap.properties.php
   plog/trunk/class/view/admin/adminsitelocaleslistview.class.php
   plog/trunk/templates/admin/sitelocales.template
Log:
Ajaxlize sitelocales admin panel.

** scanlocales still under development.

Deleted: plog/trunk/class/action/admin/adminaddlocaleaction.class.php
===================================================================
--- plog/trunk/class/action/admin/adminaddlocaleaction.class.php	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/class/action/admin/adminaddlocaleaction.class.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -1,134 +0,0 @@
-<?php
-
-	
-    
-	
-    
-    
-	
-
-    /**
-     * \ingroup Action
-     * @private
-     *
-     * Takes care of adding new locales to the system
-     */
-    class AdminAddLocaleAction extends AdminAction 
-	{
-
-    	function AdminAddLocaleAction( $actionInfo, $request )
-        {
-        	$this->AdminAction( $actionInfo, $request );
-
-        	// decide what to do based on which submit button was clicked
-        	if( $this->_request->getValue( "addLocale" ) != "" )
-        		$this->_op = "uploadLocale";
-        	else
-        		$this->_op = "scanLocales";
-
-			$this->requireAdminPermission( "add_locale" );
-        }
-
-        function validate()
-        {
-        	// first of all, we have to see if the name of the file is valid
-		if( $this->_op == "uploadLocale" ) {
-	            $files = HttpVars::getFiles();
-
-        	    $upload = new FileUpload( $files["localeFile"] );
-
-	            if( !Locales::isValidLocaleFileName( $upload->getFileName())) {
-        	    	$this->_view = new AdminTemplatedView( $this->_blogInfo, "newlocale" );
-                	$this->_view->setErrorMessage( $this->_locale->tr("error_invalid_locale_file"));
-	                $this->setCommonData();
-        	        return false;
-            	}
-		}
-
-		return true;
-        }
-
-	/**
-	 * scans the locale folder looking for new locales
-	 *
-	 * @return always true
-	 * @private
-	 */
-        function _performScanLocales()
-        {
-        	$locales = new Locales();
-
-		// find all the new locales that we have not yet stored
-		$f = new LocaleFinder();
-		$newLocaleCodes = $f->find();
-
-		// success message
-		$successMessage = "";
-
-		// set up the view
-		$this->_view = new AdminSiteLocalesListView( $this->_blogInfo );
-
-		// if there are no new locales, there's no point in doing anything!
-		if( count( $newLocaleCodes ) == 0 ) {
-			$this->_view->setErrorMessage( $this->_locale->tr("error_no_new_locales_found" ));
-			return false;
-		}
-
-		foreach( $newLocaleCodes as $newLocaleCode ) {
-			// add the locale to the config settings
-			$res = $locales->addLocale( $newLocaleCode );
-
-			// and create a success message
-			$successMessage .= $this->_locale->pr("locale_added_ok", $newLocaleCode)."<br/>";
-		}
-
-		if( $successMessage != "" ) $this->_view->setSuccessMessage( $successMessage );
-
-		return true;
-        }
-
-        function _performUploadLocale()
-        {
-        	// since we are here, the file name was validated to be ok, so we can
-            // continue with the operation
-            $files = HttpVars::getFiles();
-            $uploads = new FileUploads( $files );
-
-			$this->_view = new AdminSiteLocalesListView( $this->_blogInfo );
-
-            // we can first of all move the file to the destionation folder
-            $result = $uploads->process( $this->_config->getValue( "locale_folder" ));
-
-            // the only thing that can happen is that the file was not correctly saved
-            if( $result[0]->getError() != 0 ) {
-                $this->_view->setErrorMessage( $this->_locale->tr("error_saving_locale"));
-                return false;
-            }
-
-            // and once it's there, we can do as if we were adding a locale code
-            $upload = new FileUpload( $files["localeFile"] );
-            $res = preg_match( REGEXP_VALID_LOCALE, $upload->getFileName(), $matches );
-		$localeCode = $matches[1];
-
-		// add the file to the list of locales
-	    $locales = new Locales();
-	    $locales->addLocale( $localeCode );
-
-		$this->_view->setSuccessMessage( $this->_locale->pr( "locale_added_ok", $localeCode ));
-
-		return true;
-        }
-
-        function perform()
-        {
-       	    if( $this->_op == "scanLocales" )
-            	$result = $this->_performScanLocales();
-	    else
-            	$result = $this->_performUploadLocale();
-
-		$this->setCommonData();
-
-            return $result;
-        }
-    }
-?>

Modified: plog/trunk/class/action/admin/admindeletelocalesaction.class.php
===================================================================
--- plog/trunk/class/action/admin/admindeletelocalesaction.class.php	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/class/action/admin/admindeletelocalesaction.class.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -32,7 +32,38 @@
 			$this->requireAdminPermission( "update_locale" );
         }
 
-        function perform()
+		function perform()
+		{
+			$results = $this->_deleteLocales();
+
+            $this->_view = new AdminSiteLocalesListView( $this->_blogInfo );
+            if( $results["errorMessage"] != "" ) $this->_view->setErrorMessage( $results["errorMessage"] );
+			if( $results["successMessage"] != "" ) $this->_view->setSuccessMessage( $results["successMessage"] );
+            $this->setCommonData();
+
+            // better to return true if everything fine
+            return true;
+		}
+
+		/**
+		 * Ajax-specific behaviour
+		 */
+		function performAjax()
+		{
+			$results = $this->_deleteLocales();
+
+            $this->_view = new AdminAjaxView( $this->_blogInfo );
+			$this->_view->setMessage( $results );
+			$this->_view->setSuccess( true );
+
+            // better to return true if everything fine
+            return true;
+		}
+
+		/**
+		 * @private
+		 */
+        function _deleteLocales()
         {
 			if( $this->_op == "deleteLocale" ) {
 				$localeId = $this->_request->getValue( "localeId" );
@@ -42,36 +73,22 @@
 			else
 				$this->_localeIds = $this->_request->getValue( "localeIds" );
 
-			$this->_deleteLocales();
+            $errorMessage = "";
+            $successMessage = "";
+            $totalOk = 0;
 
-			return true;
-        }
+			$locales = new Locales();
 
-		/**
-		 * @private
-		 */
-        function _deleteLocales()
-        {
-
-            $locales = new Locales();
-
             // if there is only one locale available in the system, we should
             // not allow to remove it either
             if( count($locales->getAvailableLocales()) == 1 ) {
-            	$this->_view = new AdminSiteLocalesListView( $this->_blogInfo );
-                $this->_view->setErrorMessage( $this->_locale->tr("error_deleting_only_locale"));
-                $this->setCommonData();
-
-                return false;
+                $errorMessage = $this->_locale->tr("error_deleting_only_locale");
+                return( Array( "errorMessage" => $errorMessage, "successMessage" => $successMessage ));
             }
 
             // keep the value of the default locale because plog should not allow
             // to remove the default one
             $defaultLocale = $this->_config->getValue( "default_locale" );
-
-            $errorMessage = "";
-            $successMessage = "";
-            $totalOk = 0;
 			$f = new HtmlFilter();	
 
             foreach( $this->_localeIds as $localeId ) {
@@ -92,12 +109,7 @@
                 }
             }
 
-            $this->_view = new AdminSiteLocalesListView( $this->_blogInfo );
-			if( $errorMessage != "" ) $this->_view->setErrorMessage( $errorMessage );
-			if( $successMessage != "" ) $this->_view->setSuccessMessage( $successMessage );
-            $this->setCommonData();
-
-            return true;
+            return( Array( "errorMessage" => $errorMessage, "successMessage" => $successMessage ));
         }
     }
 ?>

Deleted: plog/trunk/class/action/admin/adminnewlocaleaction.class.php
===================================================================
--- plog/trunk/class/action/admin/adminnewlocaleaction.class.php	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/class/action/admin/adminnewlocaleaction.class.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -1,35 +0,0 @@
-<?php
-
-	
-    
-
-    /**
-     * \ingroup Action
-     * @private
-     *
-     * Shows a form to add a new locale file
-     */
-    class AdminNewLocaleAction extends AdminAction 
-    {
-
-    	function AdminNewLocaleAction( $actionInfo, $request )
-        {
-        	$this->AdminAction( $actionInfo, $request );
-
-			$this->requireAdminPermission( "add_locale" );
-        }
-
-        function perform()
-        {
-        	$this->_view = new AdminTemplatedView( $this->_blogInfo, "newlocale" );
-            $this->setCommonData();
-
-            return true;
-        }
-        
-        function performAjax()
-        {
-        	return( $this->perform() );
-        }
-    }
-?>

Added: plog/trunk/class/action/admin/adminscanlocalesaction.class.php
===================================================================
--- plog/trunk/class/action/admin/adminscanlocalesaction.class.php	                        (rev 0)
+++ plog/trunk/class/action/admin/adminscanlocalesaction.class.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -0,0 +1,73 @@
+<?php
+
+	
+    
+	
+    
+    
+	
+
+    /**
+     * \ingroup Action
+     * @private
+     *
+     * Takes care of adding new locales to the system
+     */
+    class AdminScanLocalesAction extends AdminAction 
+	{
+
+    	function AdminScanLocalesAction( $actionInfo, $request )
+        {
+        	$this->AdminAction( $actionInfo, $request );
+			$this->requireAdminPermission( "add_locale" );
+        }
+
+		/**
+	      * scans the locale folder looking for new locales
+	      *
+	      * @return always true
+	      * @private
+	    */
+        function _performScanLocales()
+        {
+        	$locales = new Locales();
+
+			// find all the new locales that we have not yet stored
+			$f = new LocaleFinder();
+			$newLocaleCodes = $f->find();
+
+			// success message
+			$successMessage = "";
+
+			// set up the view
+			$this->_view = new AdminSiteLocalesListView( $this->_blogInfo );
+
+			// if there are no new locales, there's no point in doing anything!
+			if( count( $newLocaleCodes ) == 0 ) {
+				$this->_view->setErrorMessage( $this->_locale->tr("error_no_new_locales_found" ));
+				return false;
+			}
+
+			foreach( $newLocaleCodes as $newLocaleCode ) {
+				// add the locale to the config settings
+				$res = $locales->addLocale( $newLocaleCode );
+
+				// and create a success message
+				$successMessage .= $this->_locale->pr("locale_added_ok", $newLocaleCode)."<br/>";
+			}
+
+			if( $successMessage != "" ) $this->_view->setSuccessMessage( $successMessage );
+
+			return true;
+        }
+
+        function perform()
+        {
+           	$result = $this->_performScanLocales();
+
+			$this->setCommonData();
+
+            return $result;
+        }
+    }
+?>

Modified: plog/trunk/class/action/admin/adminsitelocalesaction.class.php
===================================================================
--- plog/trunk/class/action/admin/adminsitelocalesaction.class.php	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/class/action/admin/adminsitelocalesaction.class.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -26,5 +26,10 @@
             
             return true;
         }
+
+		function performAjax()
+		{
+			return( $this->perform() );
+		}
     }
 ?>
\ No newline at end of file

Modified: plog/trunk/class/controller/admincontrollermap.properties.php
===================================================================
--- plog/trunk/class/controller/admincontrollermap.properties.php	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/class/controller/admincontrollermap.properties.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -156,11 +156,8 @@
     // removes a locale from disk
     $actions["deleteLocales"] = "AdminDeleteLocalesAction";
     $actions["deleteLocale"] = "AdminDeleteLocalesAction";
-    // shows the form to upload a new locale file
-    $actions["newLocale"] = "AdminNewLocaleAction";
     // adds a new locale to the server
-    $actions["uploadLocale"] = "AdminAddLocaleAction";
-	$actions["scanLocales"] = "AdminAddLocaleAction";
+	$actions["scanLocales"] = "AdminScanLocalesAction";
     // shows a list of the locales available
     $actions["siteTemplates"] = "AdminEditTemplatesAction";
     // deletes templates

Modified: plog/trunk/class/view/admin/adminsitelocaleslistview.class.php
===================================================================
--- plog/trunk/class/view/admin/adminsitelocaleslistview.class.php	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/class/view/admin/adminsitelocaleslistview.class.php	2008-03-15 10:14:24 UTC (rev 6235)
@@ -12,7 +12,10 @@
 	
 		function AdminSiteLocalesListView( $blogInfo )
 		{
-			$this->AdminTemplatedView( $blogInfo, "sitelocales" );
+			if( Request::isXHR())
+				$this->AdminTemplatedView( $blogInfo, "sitelocales_table" );
+			else
+        		$this->AdminTemplatedView( $blogInfo, "sitelocales" );
 		}
 		
 		function render()

Added: plog/trunk/js/ui/pages/sitelocales.js
===================================================================
--- plog/trunk/js/ui/pages/sitelocales.js	                        (rev 0)
+++ plog/trunk/js/ui/pages/sitelocales.js	2008-03-15 10:14:24 UTC (rev 6235)
@@ -0,0 +1,11 @@
+Lifetype.UI.Pages.SiteLocales = function() {}
+
+YAHOO.util.Event.addListener( window, "load", function() {
+	var t = new Lifetype.Effects.Table( "list" );
+	t.stripe();
+	t.highlightRows();
+
+	// reload the list when successfully deleting an item and processing one of the forms
+	Lifetype.Forms.Events.performRequestSuccessEvent.subscribe( function() { Lifetype.UI.DataTable.reload( '?op=siteLocales' ) } );
+	Lifetype.Forms.Events.formProcessorSuccessEvent.subscribe( function() { Lifetype.UI.DataTable.reload( '?op=siteLocales' ) } );
+});
\ No newline at end of file

Deleted: plog/trunk/templates/admin/newlocale.template
===================================================================
--- plog/trunk/templates/admin/newlocale.template	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/templates/admin/newlocale.template	2008-03-15 10:14:24 UTC (rev 6235)
@@ -1,19 +0,0 @@
-<form name="uploadLocaleFile" enctype="multipart/form-data" action="admin.php" method="post">
- <fieldset class="inputField">
-  <legend>{$locale->tr("newLocale")}</legend>
-  {include file="$admintemplatepath/successmessage.template"}
-  {include file="$admintemplatepath/errormessage.template"}
-  <div class="field">
-   <label for="templateFile">{$locale->tr("locale")}</label> 
-   <span class="required">*</span>
-   <div class="formHelp">{$locale->pr("add_locale_help", $templateFolder)}</div>
-   <input type="file" name="localeFile" value="" />
-  </div>
- </fieldset>
- <div class="buttons">
-  <input type="reset" name="resetButton" value="{$locale->tr("reset")}" />
-  <input type="hidden" name="op" value="uploadLocale" />
-  <input type="submit" name="scanLocales" value="{$locale->tr("scan_locales")}" />  
-  <input type="submit" name="addLocale" value="{$locale->tr("add")}" />    
- </div>
-</form> 
\ No newline at end of file

Modified: plog/trunk/templates/admin/sitelocales.template
===================================================================
--- plog/trunk/templates/admin/sitelocales.template	2008-03-14 18:21:05 UTC (rev 6234)
+++ plog/trunk/templates/admin/sitelocales.template	2008-03-15 10:14:24 UTC (rev 6235)
@@ -1,66 +1,21 @@
 {include file="$admintemplatepath/header.template"}
 {include file="$admintemplatepath/navigation.template" showOpt=siteLocales title=$locale->tr("siteLocales")}
-<script type="text/javascript">
-{literal}
-YAHOO.util.Event.addListener( window, "load", function() {
-		var t = new Lifetype.Effects.Table( "list" );
-		t.stripe();
-		t.highlightRows();
-	});
-{/literal}
-</script>
-{check_perms adminperm=add_locale}
-<div class="extraFunctions">
-	<div class="left">		
-		<a id="newLocaleButton" href="?op=newLocale" rel="overlay">{$locale->tr("newLocale")}</a>
-	</div>
-</div>
-<br style="clear:both" />
-{/check_perms}
- <form id="editLocales" method="post" action="admin.php">
+{js src="js/ui/pages/sitelocales.js"}
+ <form id="editLocales" method="post" action="admin.php" onSubmit="Lifetype.Forms.performRequest(this);return(false);">
+  {include file="$admintemplatepath/viewvalidateajax.template"}
   <div id="list">
-  {include file="$admintemplatepath/successmessage.template"}
-  {include file="$admintemplatepath/errormessage.template"}
-   <table id="list" class="info" summary="{$locale->tr("siteLocales")}">
-    <thead>
-     <tr>
-      <th><input class="checkbox" type="checkbox" name="all" id="all" value="1" onclick="Lifetype.Forms.toggleAllChecks('editLocales');" /></th>
-      <th style="width:10%;">{$locale->tr("locale")}</th>
-      <th style="width:15%;">{$locale->tr("locale_encoding")}</th>
-      <th style="width:60%;">{$locale->tr("description")}</th>
-      <th style="width:10%;">{$locale->tr("actions")}</th>
-     </tr>
-    </thead>
-    <tbody>
-    {foreach from=$locales item=sitelocale}
-     <tr>
-      <td>
-       <input class="checkbox" type="checkbox" name="localeIds[{counter}]" value="{$sitelocale->getLocaleCode()}"/>
-      </td>
-      <td>{$sitelocale->getLocaleCode()}</td>
-      <td>{$sitelocale->getCharset()}</td>
-      <td class="col_highlighted">{$sitelocale->getDescription()|truncate:80:"..."}</td>
-      <td>
-       <div class="list_action_button">
-	    {check_perms adminperm=update_locale}
-        <a href="?op=deleteLocale&amp;localeId={$sitelocale->getLocaleCode()}" title="{$locale->tr("delete")}">
-	      <img src="imgs/admin/icon_delete-16.png" alt="{$locale->tr("delete")}" />
-	    </a>
-       {/check_perms} 
-       </div>
-      </td>
-     </tr>
-     {/foreach}    
-    </tbody>  
-  </table>
- </div>
- <div id="list_action_bar">
-   {check_perms adminperm=update_locale}
-   <input type="submit" name="delete" value="{$locale->tr("delete")}" class="submit" />
-   <input type="hidden" name="op" value="deleteLocales" />
-   {/check_perms}
- </div>
-</form>
+    {include file="$admintemplatepath/sitelocales_table.template"}
+  </div>
+  <div id="list_action_bar">
+    {check_perms adminperm=add_locale}
+      <input type="submit" name="scanLocales" value="{$locale->tr("scan_locales")}" />
+    {/check_perms}  
+    {check_perms adminperm=update_locale}
+      <input type="submit" name="delete" value="{$locale->tr("delete")}" class="submit" />
+      <input type="hidden" name="op" value="deleteLocales" />
+    {/check_perms}
+  </div>
+ </form>
 
 {include file="$admintemplatepath/footernavigation.template"}
-{include file="$admintemplatepath/footer.template"}
+{include file="$admintemplatepath/footer.template"}
\ No newline at end of file

Added: plog/trunk/templates/admin/sitelocales_table.template
===================================================================
--- plog/trunk/templates/admin/sitelocales_table.template	                        (rev 0)
+++ plog/trunk/templates/admin/sitelocales_table.template	2008-03-15 10:14:24 UTC (rev 6235)
@@ -0,0 +1,32 @@
+   <table id="locales" class="info" summary="{$locale->tr("siteLocales")}">
+    <thead>
+     <tr>
+      <th><input class="checkbox" type="checkbox" name="all" id="all" value="1" onclick="Lifetype.Forms.toggleAllChecks('editLocales');" /></th>
+      <th style="width:10%;">{$locale->tr("locale")}</th>
+      <th style="width:15%;">{$locale->tr("locale_encoding")}</th>
+      <th style="width:60%;">{$locale->tr("description")}</th>
+      <th style="width:10%;">{$locale->tr("actions")}</th>
+     </tr>
+    </thead>
+    <tbody>
+    {foreach from=$locales item=sitelocale}
+     <tr>
+      <td>
+       <input class="checkbox" type="checkbox" name="localeIds[{counter}]" value="{$sitelocale->getLocaleCode()}"/>
+      </td>
+      <td>{$sitelocale->getLocaleCode()}</td>
+      <td>{$sitelocale->getCharset()}</td>
+      <td class="col_highlighted">{$sitelocale->getDescription()|truncate:80:"..."}</td>
+      <td>
+       <div class="list_action_button">
+	    {check_perms adminperm=update_locale}
+        <a href="?op=deleteLocale&amp;localeId={$sitelocale->getLocaleCode()}" title="{$locale->tr("delete")}" onClick="Lifetype.Forms.performRequest(this);return(false)">
+	      <img src="imgs/admin/icon_delete-16.png" alt="{$locale->tr("delete")}" />
+	    </a>
+       {/check_perms} 
+       </div>
+      </td>
+     </tr>
+     {/foreach}    
+    </tbody>  
+  </table>
\ No newline at end of file



More information about the pLog-svn mailing list