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
';
+'.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, 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, 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, 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, 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, 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;