[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&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&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