diff options
Diffstat (limited to 'modules/gallery')
| -rw-r--r-- | modules/gallery/helpers/gallery_task.php | 142 | ||||
| -rw-r--r-- | modules/gallery/helpers/l10n_client.php | 9 | 
2 files changed, 80 insertions, 71 deletions
| diff --git a/modules/gallery/helpers/gallery_task.php b/modules/gallery/helpers/gallery_task.php index c673411d..9ce2c4a0 100644 --- a/modules/gallery/helpers/gallery_task.php +++ b/modules/gallery/helpers/gallery_task.php @@ -45,6 +45,7 @@ class gallery_task_Core {     * @param Task_Model the task     */    static function rebuild_dirty_images($task) { +    $message = array();      try {        $result = graphics::find_dirty_images_query();        $completed = $task->get("completed", 0); @@ -62,13 +63,12 @@ class gallery_task_Core {            $success = graphics::generate($item);            if (!$success) {              $ignored[$item->id] = 1; -            $message = t("Unable to rebuild images for '%title'", +            $message[] = t("Unable to rebuild images for '%title'",                           array("title" => p::purify($item->title)));            } else { -            $message = t("Successfully rebuilt images for '%title'", +            $message[] = t("Successfully rebuilt images for '%title'",                           array("title" => p::purify($item->title)));            } -          $task->log($message);          }          $completed++; @@ -101,88 +101,98 @@ class gallery_task_Core {        $task->done = true;        $task->state = "error";        $task->status = $e->getMessage(); -      $task->log($e->__toString()); +      $message[] = $e->__toString();      } +    $task->log($message);    }    static function update_l10n(&$task) { -    $start = microtime(true); -    $dirs = $task->get("dirs"); -    $files = $task->get("files"); -    $cache = $task->get("cache", array()); -    $i = 0; +    $message = array(); +    try { +      $start = microtime(true); +      $dirs = $task->get("dirs"); +      $files = $task->get("files"); +      $cache = $task->get("cache", array()); +      $i = 0; -    switch ($task->get("mode", "init")) { -    case "init":  // 0% -      $dirs = array("gallery", "modules", "themes", "installer"); -      $files = array(); -      $task->set("mode", "find_files"); -      $task->status = t("Finding files"); -      break; +      switch ($task->get("mode", "init")) { +      case "init":  // 0% +        $dirs = array("gallery", "modules", "themes", "installer"); +        $files = array(); +        $task->set("mode", "find_files"); +        $task->status = t("Finding files"); +        break; -    case "find_files":  // 0% - 10% -      while (($dir = array_pop($dirs)) && microtime(true) - $start < 0.5) { -        if (in_array(basename($dir), array("tests", "lib"))) { -          continue; -        } +      case "find_files":  // 0% - 10% +        while (($dir = array_pop($dirs)) && microtime(true) - $start < 0.5) { +          if (in_array(basename($dir), array("tests", "lib"))) { +            continue; +          } -        foreach (glob(DOCROOT . "$dir/*") as $path) { -          $relative_path = str_replace(DOCROOT, "", $path); -          if (is_dir($path)) { -            $dirs[] = $relative_path; -          } else { -            $files[] = $relative_path; +          foreach (glob(DOCROOT . "$dir/*") as $path) { +            $relative_path = str_replace(DOCROOT, "", $path); +            if (is_dir($path)) { +              $dirs[] = $relative_path; +            } else { +              $files[] = $relative_path; +            }            }          } -      } -      $task->status = t2("Finding files: found 1 file", -                         "Finding files: found %count files", count($files)); +        $message[] = $task->status = t2("Finding files: found 1 file", +                                        "Finding files: found %count files", count($files)); -      if (!$dirs) { -        $task->set("mode", "scan_files"); -        $task->set("total_files", count($files)); -        $task->status = t("Scanning files"); -        $task->percent_complete = 10; -      } -      break; +        if (!$dirs) { +          $task->set("mode", "scan_files"); +          $task->set("total_files", count($files)); +          $task->status = t("Scanning files"); +          $task->percent_complete = 10; +        } +        break; -    case "scan_files": // 10% - 90% -      while (($file = array_pop($files)) && microtime(true) - $start < 0.5) { -        $file = DOCROOT . $file; -        switch (pathinfo($file, PATHINFO_EXTENSION)) { -        case "php": -          l10n_scanner::scan_php_file($file, $cache); -          break; +      case "scan_files": // 10% - 90% +        while (($file = array_pop($files)) && microtime(true) - $start < 0.5) { +          $file = DOCROOT . $file; +          switch (pathinfo($file, PATHINFO_EXTENSION)) { +          case "php": +            l10n_scanner::scan_php_file($file, $cache); +            break; -        case "info": -          l10n_scanner::scan_info_file($file, $cache); -          break; +          case "info": +            l10n_scanner::scan_info_file($file, $cache); +            break; +          }          } -      } -      $total_files = $task->get("total_files"); -      $task->status = t2("Scanning files: scanned 1 file", -                         "Scanning files: scanned %count files", $total_files - count($files)); +        $total_files = $task->get("total_files"); +        $message[] = $task->status = t2("Scanning files: scanned 1 file", +                              "Scanning files: scanned %count files", $total_files - count($files)); + +        $task->percent_complete = 10 + 80 * ($total_files - count($files)) / $total_files; +        if (empty($files)) { +          $task->set("mode", "fetch_updates"); +          $task->status = t("Fetching updates"); +          $task->percent_complete = 90; +        } +        break; -      $task->percent_complete = 10 + 80 * ($total_files - count($files)) / $total_files; -      if (empty($files)) { -        $task->set("mode", "fetch_updates"); -        $task->status = t("Fetching updates"); -        $task->percent_complete = 90; +      case "fetch_updates":  // 90% - 100% +        $message = array_merge($message, l10n_client::fetch_updates()); +        $task->done = true; +        $task->state = "success"; +        $task->status = t("Translations installed/updated"); +        $task->percent_complete = 100;        } -      break; -    case "fetch_updates":  // 90% - 100% -      l10n_client::fetch_updates(); +      $task->set("files", $files); +      $task->set("dirs", $dirs); +      $task->set("cache", $cache); +    } catch (Exception $e) {        $task->done = true; -      $task->state = "success"; -      $task->status = t("Translations installed/updated"); -      $task->percent_complete = 100; +      $task->state = "error"; +      $task->status = $e->getMessage(); +      $message[] = $e->__toString();      } - -    $task->set("files", $files); -    $task->set("dirs", $dirs); -    $task->set("cache", $cache); +    $task->log($message);    }  }
\ No newline at end of file diff --git a/modules/gallery/helpers/l10n_client.php b/modules/gallery/helpers/l10n_client.php index e153532c..5b14abec 100644 --- a/modules/gallery/helpers/l10n_client.php +++ b/modules/gallery/helpers/l10n_client.php @@ -101,8 +101,7 @@ class l10n_client_Core {        throw new Exception("@todo TRANSLATIONS_FETCH_REQUEST_FAILED " . $response_status);      }      if (empty($response_data)) { -      log::info("translations", "Translations fetch request resulted in an empty response"); -      return; +      return array(t("Translations fetch request resulted in an empty response"));      }      $response = json_decode($response_data); @@ -112,9 +111,8 @@ class l10n_client_Core {      //    {key:<key_2>, ...}      //   ]      $count = count($response); -    log::info("translations", -              t2("Installed 1 new / updated translation message", -                 "Installed %count new / updated translation messages", $count)); +    $message[] = t2("Installed 1 new / updated translation message", +                    "Installed %count new / updated translation messages", $count);      foreach ($response as $message_data) {        // @todo Better input validation @@ -152,6 +150,7 @@ class l10n_client_Core {        $entry->translation = $translation;        $entry->save();      } +    return $message;    }    static function submit_translations() { | 
