diff --git a/src/IDF/Commit.php b/src/IDF/Commit.php index 6587148..0c83053 100644 --- a/src/IDF/Commit.php +++ b/src/IDF/Commit.php @@ -148,8 +148,19 @@ class IDF_Commit extends Pluf_Model $commit = new IDF_Commit(); $commit->project = $project; $commit->scm_id = $change->commit; - $commit->summary = $change->title; - $commit->fullmessage = $change->full_message; + if (Pluf_Text_UTF8::check($change->title)) { + $commit->summary = $change->title; + $commit->fullmessage = $change->full_message; + } else { + // Not in utf8, so we try to detect the encoding and + // convert accordingly. + $encoding = mb_detect_encoding($change->title, mb_detect_order(), true); + if ($encoding == false) { + $encoding = Pluf_Text_UTF8::detect_cyr_charset($change->title); + } + $commit->summary = mb_convert_encoding($change->title, 'UTF-8', $encoding); + $commit->fullmessage = mb_convert_encoding($change->full_message, 'UTF-8', $encoding); + } $commit->author = $scm->findAuthor($change->author); $commit->origauthor = $change->author; $commit->creation_dtime = $change->date; @@ -202,7 +213,7 @@ class IDF_Commit extends Pluf_Model -
'.__('Commit').' '.$this->scm_id.', '.__('by').' '.$user.'
'; +
'.sprintf(__('Commit %s, by %s'), ''.$this->scm_id.'', $user).'
'; return Pluf_Template::markSafe($out); } diff --git a/src/IDF/Form/Admin/UserUpdate.php b/src/IDF/Form/Admin/UserUpdate.php index 6af03f2..6859859 100644 --- a/src/IDF/Form/Admin/UserUpdate.php +++ b/src/IDF/Form/Admin/UserUpdate.php @@ -179,9 +179,12 @@ class IDF_Form_Admin_UserUpdate extends Pluf_Form function clean_first_name() { $first_name = trim($this->cleaned_data['first_name']); + if ($first_name == '---') { + throw new Pluf_Form_Invalid(__('--- is not a valid first name.')); + } if ($first_name == mb_strtoupper($first_name)) { - return mb_convert_case(mb_strtolower($first_name), - MB_CASE_TITLE, 'UTF-8'); + $first_name = mb_convert_case(mb_strtolower($first_name), + MB_CASE_TITLE, 'UTF-8'); } return $first_name; } diff --git a/src/IDF/Issue.php b/src/IDF/Issue.php index 22642b8..462d3e5 100644 --- a/src/IDF/Issue.php +++ b/src/IDF/Issue.php @@ -193,7 +193,7 @@ class IDF_Issue extends Pluf_Model $ic = (in_array($this->status, $request->project->getTagIdsByStatus('closed'))) ? 'issue-c' : 'issue-o'; $out .= sprintf(__('Issue %3$d, %4$s'), $url, $ic, $this->id, Pluf_esc($this->summary)).''; $out .= "\n".' -
'.sprintf(__('Creation of issue %d'), $url, $ic, $this->id).', '.__('by').' '.$user.'
'; +
'.sprintf(__('Creation of issue %d, by %s'), $url, $ic, $this->id, $user).'
'; return Pluf_Template::markSafe($out); } diff --git a/src/IDF/IssueComment.php b/src/IDF/IssueComment.php index fc002dc..16191f2 100644 --- a/src/IDF/IssueComment.php +++ b/src/IDF/IssueComment.php @@ -170,7 +170,7 @@ class IDF_IssueComment extends Pluf_Model $out .= "\n".' -
'.sprintf(__('Comment on issue %d'), $url, $ic, $issue->id).', '.__('by').' '.$user.'
'; +
'.sprintf(__('Comment on issue %d, by %s'), $url, $ic, $issue->id, $user).'
'; return Pluf_Template::markSafe($out); } diff --git a/src/IDF/Upload.php b/src/IDF/Upload.php index 24fe3a9..1d129a5 100644 --- a/src/IDF/Upload.php +++ b/src/IDF/Upload.php @@ -183,7 +183,7 @@ class IDF_Upload extends Pluf_Model $out .= sprintf(__('Download %2$d, %3$s'), $url, $this->id, Pluf_esc($this->summary)).''; $out .= ''; $out .= "\n".' -
'.sprintf(__('Addition of download %d'), $url, $this->id).', '.__('by').' '.$user.'
'; +
'.sprintf(__('Addition of download %d, by %s'), $url, $this->id, $user).'
'; return Pluf_Template::markSafe($out); } diff --git a/src/IDF/Views/Project.php b/src/IDF/Views/Project.php index 6766161..409faf5 100644 --- a/src/IDF/Views/Project.php +++ b/src/IDF/Views/Project.php @@ -342,7 +342,7 @@ class IDF_Views_Project $conf->setVal($key, $val); } $request->user->setMessage(__('The documentation configuration has been saved.')); - $url = Pluf_HTTP_URL_urlForView('IDF_Views_Project::adminDownloads', + $url = Pluf_HTTP_URL_urlForView('IDF_Views_Project::adminWiki', array($prj->shortname)); return new Pluf_HTTP_Response_Redirect($url); } diff --git a/src/IDF/WikiPage.php b/src/IDF/WikiPage.php index 04cacf8..2733e4f 100644 --- a/src/IDF/WikiPage.php +++ b/src/IDF/WikiPage.php @@ -196,7 +196,7 @@ class IDF_WikiPage extends Pluf_Model $user = $stag->start($this->get_submitter(), $request, '', false); $out .= sprintf(__('%2$s, %3$s'), $url, Pluf_esc($this->title), Pluf_esc($this->summary)).''; $out .= "\n".' -
'.sprintf(__('Creation of page %s'), $url, Pluf_esc($this->title)).', '.__('by').' '.$user.'
'; +
'.sprintf(__('Creation of page %s, by %s'), $url, Pluf_esc($this->title), $user).'
'; return Pluf_Template::markSafe($out); } diff --git a/src/IDF/WikiRevision.php b/src/IDF/WikiRevision.php index ecc6181..8dbf070 100644 --- a/src/IDF/WikiRevision.php +++ b/src/IDF/WikiRevision.php @@ -186,7 +186,7 @@ class IDF_WikiRevision extends Pluf_Model } $out .= ''; $out .= "\n".' -
'.sprintf(__('Change of %s'), $url, Pluf_esc($page->title)).', '.__('by').' '.$user.'
'; +
'.sprintf(__('Change of %s, by %s'), $url, Pluf_esc($page->title), $user).'
'; return Pluf_Template::markSafe($out); } diff --git a/src/IDF/conf/urls.php b/src/IDF/conf/urls.php index b75c869..15b8935 100644 --- a/src/IDF/conf/urls.php +++ b/src/IDF/conf/urls.php @@ -26,33 +26,28 @@ $base = Pluf::f('idf_base'); $ctl[] = array('regex' => '#^/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'index'); $ctl[] = array('regex' => '#^/login/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'login', 'name' => 'login_view'); $ctl[] = array('regex' => '#^/preferences/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_User', 'method' => 'myAccount'); $ctl[] = array('regex' => '#^/dashboard/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_User', 'method' => 'dashboard', 'name' => 'idf_dashboard'); $ctl[] = array('regex' => '#^/dashboard/submitted/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_User', 'method' => 'dashboard', 'params' => false, @@ -60,105 +55,88 @@ $ctl[] = array('regex' => '#^/dashboard/submitted/$#', $ctl[] = array('regex' => '#^/u/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_User', 'method' => 'view'); $ctl[] = array('regex' => '#^/logout/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'logout'); $ctl[] = array('regex' => '#^/help/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'faq'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'home'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/timeline/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'timeline'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/feed/timeline/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'timelineFeed', 'name' => 'idf_project_timeline_feed'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/feed/timeline/token/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'timelineFeed', 'name' => 'idf_project_timeline_feed_auth'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'index'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/search/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'search'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'view'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/(\d+)/star/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'star'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/status/(\w+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'listStatus'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/label/(\d+)/(\w+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'listLabel'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/create/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'create'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/my/(\w+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'myIssues'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/attachment/(\d+)/(.*)$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'getAttachment'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/view/attachment/(\d+)/(.*)$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Issue', 'method' => 'viewAttachment'); @@ -166,61 +144,51 @@ $ctl[] = array('regex' => '#^/p/([\-\w]+)/issues/view/attachment/(\d+)/(.*)$#', $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/help/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'help'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/tree/([^/]+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'treeBase'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/tree/([^/]+)/(.*)$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'tree'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/changes/([^/]+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'changeLog'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/commit/([^/]+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'commit'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/ddiff/([^/]+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'downloadDiff'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/download/([^/]+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'download'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/file/([^/]+)/(.*)$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source', 'method' => 'getFile'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/treerev/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source_Svn', 'method' => 'treeRev'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/changesrev/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Source_Svn', 'method' => 'changelogRev'); @@ -228,43 +196,36 @@ $ctl[] = array('regex' => '#^/p/([\-\w]+)/source/changesrev/$#', $ctl[] = array('regex' => '#^/p/([\-\w]+)/doc/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'index'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/doc/create/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'create'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/doc/search/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'search'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/doc/label/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'listLabel'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/doc/update/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'update'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/doc/delrev/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'deleteRev'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/page/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Wiki', 'method' => 'view'); @@ -272,37 +233,31 @@ $ctl[] = array('regex' => '#^/p/([\-\w]+)/page/(.*)/$#', $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Download', 'method' => 'index'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/label/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Download', 'method' => 'listLabel'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Download', 'method' => 'view'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/(\d+)/get/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Download', 'method' => 'download'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/create/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Download', 'method' => 'submit'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/(\d+)/delete/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Download', 'method' => 'delete'); @@ -310,25 +265,21 @@ $ctl[] = array('regex' => '#^/p/([\-\w]+)/downloads/(\d+)/delete/$#', $ctl[] = array('regex' => '#^/p/([\-\w]+)/review/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Review', 'method' => 'index'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/review/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Review', 'method' => 'view'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/review/create/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Review', 'method' => 'create'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/review/getpatch/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Review', 'method' => 'getPatch'); @@ -337,43 +288,36 @@ $ctl[] = array('regex' => '#^/p/([\-\w]+)/review/getpatch/(\d+)/$#', $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'admin'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/issues/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'adminIssues'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/downloads/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'adminDownloads'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/wiki/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'adminWiki'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/source/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'adminSource'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/members/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'adminMembers'); $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/tabs/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Project', 'method' => 'adminTabs'); @@ -381,19 +325,16 @@ $ctl[] = array('regex' => '#^/p/([\-\w]+)/admin/tabs/$#', $ctl[] = array('regex' => '#^/help/api/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'faqApi'); $ctl[] = array('regex' => '#^/api/p/([\-\w]+)/issues/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Api', 'method' => 'issuesIndex'); $ctl[] = array('regex' => '#^/api/p/([\-\w]+)/issues/create/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Api', 'method' => 'issueCreate'); @@ -401,43 +342,36 @@ $ctl[] = array('regex' => '#^/api/p/([\-\w]+)/issues/create/$#', $ctl[] = array('regex' => '#^/admin/projects/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'projects'); $ctl[] = array('regex' => '#^/admin/projects/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'projectUpdate'); $ctl[] = array('regex' => '#^/admin/projects/create/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'projectCreate'); $ctl[] = array('regex' => '#^/admin/projects/(\d+)/delete/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'projectDelete'); $ctl[] = array('regex' => '#^/admin/users/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'users'); $ctl[] = array('regex' => '#^/admin/users/notvalid/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'usersNotValidated'); $ctl[] = array('regex' => '#^/admin/users/(\d+)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_Admin', 'method' => 'userUpdate'); @@ -445,53 +379,42 @@ $ctl[] = array('regex' => '#^/admin/users/(\d+)/$#', $ctl[] = array('regex' => '#^/register/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'register'); $ctl[] = array('regex' => '#^/register/k/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'registerConfirmation'); $ctl[] = array('regex' => '#^/register/ik/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'registerInputKey'); $ctl[] = array('regex' => '#^/password/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'passwordRecoveryAsk'); $ctl[] = array('regex' => '#^/password/ik/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'passwordRecoveryInputCode'); $ctl[] = array('regex' => '#^/password/k/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views', 'method' => 'passwordRecovery'); $ctl[] = array('regex' => '#^/preferences/email/ik/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_User', 'method' => 'changeEmailInputKey'); $ctl[] = array('regex' => '#^/preferences/email/ak/(.*)/$#', 'base' => $base, - 'priority' => 4, 'model' => 'IDF_Views_User', 'method' => 'changeEmailDo'); - - - return $ctl;