diff options
| author | Chad Kieffer <ckieffer@gmail.com> | 2009-08-28 15:50:52 -0600 | 
|---|---|---|
| committer | Chad Kieffer <ckieffer@gmail.com> | 2009-08-28 15:50:52 -0600 | 
| commit | d1a44af862e08676eaecde62e71597ed1eae85ec (patch) | |
| tree | 3a7823695fe8faa151fe8f3b7d7f052db9d5eedd /modules/gallery | |
| parent | c428e49f3273f04fd220107b4992e6177aa1b265 (diff) | |
| parent | 31d63a0d0a27212435a78eb38461320f486b5f95 (diff) | |
Merge branch 'master' of git@github.com:gallery/gallery3
Diffstat (limited to 'modules/gallery')
| -rw-r--r-- | modules/gallery/controllers/admin_languages.php | 52 | ||||
| -rw-r--r-- | modules/gallery/views/admin_languages.html.php | 71 | 
2 files changed, 82 insertions, 41 deletions
| diff --git a/modules/gallery/controllers/admin_languages.php b/modules/gallery/controllers/admin_languages.php index ae90ad07..6dc242c6 100644 --- a/modules/gallery/controllers/admin_languages.php +++ b/modules/gallery/controllers/admin_languages.php @@ -21,7 +21,10 @@ class Admin_Languages_Controller extends Admin_Controller {    public function index($share_translations_form=null) {      $v = new Admin_View("admin.html");      $v->content = new View("admin_languages.html"); -    $v->content->settings_form = $this->_languages_form(); +		$v->content->available_locales = locales::available(); +    $v->content->installed_locales = locales::installed(); +    $v->content->default_locale = module::get_var("gallery", "default_locale"); +		      if (empty($share_translations_form)) {        $share_translations_form = $this->_share_translations_form();      } @@ -32,14 +35,21 @@ class Admin_Languages_Controller extends Admin_Controller {    public function save() {      access::verify_csrf(); - -    $form = $this->_languages_form(); -    if ($form->validate()) { -      module::set_var("gallery", "default_locale", $form->choose_language->locale->value); -      locales::update_installed($form->choose_language->installed_locales->value); -      message::success(t("Settings saved")); -    } -    url::redirect("admin/languages"); +		 +		locales::update_installed($this->input->post("installed_locales")); +		 +		$installed_locales = array_keys(locales::installed()); +    $new_default_locale = $this->input->post("default_locale"); +		if (!in_array($new_default_locale, $installed_locales)) { +			if (!empty($installed_locales)) { +				$new_default_locale = $installed_locales[0]; +			} else { +				$new_default_locale = "en_US"; +			} +		} +		module::set_var("gallery", "default_locale", $new_default_locale); +		 +		print json_encode(array("result" => "success"));    }    public function share() { @@ -88,30 +98,6 @@ class Admin_Languages_Controller extends Admin_Controller {      }    } -  private function _languages_form() { -    $all_locales = locales::available(); -    $installed_locales = locales::installed(); -    $form = new Forge("admin/languages/save", "", "post", array("id" => "gLanguageSettingsForm")); -    $group = $form->group("choose_language") -      ->label(t("Language settings")); -    $group->dropdown("locale") -      ->options($installed_locales) -      ->selected(module::get_var("gallery", "default_locale")) -      ->label(t("Default language")) -      ->rules('required'); - -    $installation_options = array(); -    foreach ($all_locales as $code => $display_name) { -      $installation_options[$code] = array($display_name, isset($installed_locales->$code)); -    } -    $group->checklist("installed_locales") -      ->label(t("Installed Languages")) -      ->options($installation_options) -      ->rules("required"); -    $group->submit("save")->value(t("Save settings")); -    return $form; -  } -    private function _outgoing_translations_count() {      return ORM::factory("outgoing_translation")->count_all();    } diff --git a/modules/gallery/views/admin_languages.html.php b/modules/gallery/views/admin_languages.html.php index f41694b4..fc3a87dc 100644 --- a/modules/gallery/views/admin_languages.html.php +++ b/modules/gallery/views/admin_languages.html.php @@ -1,14 +1,69 @@  <?php defined("SYSPATH") or die("No direct script access.") ?>  <div id="gLanguages"> -  <h2> <?= t("Languages") ?> </h2> +  <h1> <?= t("Languages") ?> </h1> +  <p> +    <?= t("Here you can install new languages, update installed ones and set the default language for your Gallery.") ?> +  </p> -  <?= $settings_form ?> - -  <h2> <?= t("Download translations") ?> </h2> -  <a href="<?= url::site("admin/maintenance/start/gallery_task::update_l10n?csrf=$csrf") ?>" -     class="gDialogLink"> -    <?= t("Get updates") ?> -  </a> +  <form id="gLanguagesForm" method="post" action="<?= url::site("admin/languages/save") ?>"> +    <?= access::csrf_form_field() ?> +    <table> +      <tr> +        <th> <?= t("Installed") ?> </th> +        <th> <?= t("Language") ?> </th> +				<th> <?= t("Default language") ?> </th> +      </tr> +      <? $i = 0 ?> +      <? foreach ($available_locales as $code => $display_name):  ?> +			 +			<? if ($i == (count($available_locales)/2)): ?> +      <table> +        <tr> +          <th> <?= t("Installed") ?> </th> +          <th> <?= t("Language") ?> </th> +          <th> <?= t("Default language") ?> </th> +        </tr> +      <? endif ?> +			 +      <tr class="<?= (isset($installed_locales[$code])) ? "installed" : "" ?><?= ($default_locale == $code) ? " default" : "" ?>"> +        <td> <?= form::checkbox("installed_locales[]", $code, isset($installed_locales[$code])) ?> </td> +				<td> <?= $display_name ?> </td> +				<td> +					<?= form::radio("default_locale", $code, ($default_locale == $code), ((isset($installed_locales[$code]))?'':'disabled="disabled"') ) ?> +				</td> +      </tr> +      <? $i++ ?> +			 +      <? endforeach ?> +    </table> +		<input type="submit" value="<?= t("Update languages") ?>" /> +  </form> +	 +	<script type="text/javascript"> +		var old_default_locale = "<?= $default_locale ?>"; +		 +		$("input[name='installed_locales[]']").change(function (event) { +			if (this.checked) { +				$("input[type='radio'][value='" + this.value + "']").enable(); +			} else { +				if ($("input[type='radio'][value='" + this.value + "']").selected()) { // if you deselect your default language, switch to some other installed language +					$("input[type='radio'][value='" + old_default_locale + "']").attr("checked", "checked"); +				} +				$("input[type='radio'][value='" + this.value + "']").attr("disabled", "disabled"); +			} +		}); +		 +    $("#gLanguagesForm").ajaxForm({ +			dataType: "json", +			success: function(data) { +				if (data.result == "success") { +					el = $('<a href="<?= url::site("admin/maintenance/start/gallery_task::update_l10n?csrf=$csrf") ?>"></a>'); // this is a little hack to trigger the update_l10n task in a dialog +					el.gallery_dialog(); +					el.trigger('click'); +				} +			} +		}); +	</script>    <h2> <?= t("Your Own Translations") ?> </h2>    <?= $share_translations_form ?> | 
