Commit 476eccac authored by Soldatoff's avatar Soldatoff

Added a function to get the number of typos. And displaying their number for all sites.

parent 929100e7
...@@ -195,6 +195,17 @@ class Typos extends CI_Controller { ...@@ -195,6 +195,17 @@ class Typos extends CI_Controller {
->set_status_header(200) ->set_status_header(200)
->set_output(json_encode($this->typo->getSiteTypos($siteId))); ->set_output(json_encode($this->typo->getSiteTypos($siteId)));
} }
function getCountTypos($siteId = null) {
if (is_null($siteId)) {
return $this->output->set_status_header(400)
->set_output("Missing siteId parameter!");
}
return $this->output->set_content_type("application/json")
->set_status_header(200)
->set_output(json_encode($this->typo->getCountTypos($siteId)));
}
/** /**
* Получить список сообщений об опечатках для пользователя * Получить список сообщений об опечатках для пользователя
......
...@@ -202,6 +202,14 @@ class Typo extends CI_Model { ...@@ -202,6 +202,14 @@ class Typo extends CI_Model {
return $this->db->get()->result(); return $this->db->get()->result();
} }
function getCountTypos($siteId) {
$this->db->select("count(*)");
$this->db->from("messages");
$this->db->where("site_id", $siteId);
$this->db->where("status", 0);
return $this->db->get()->result();
}
/* Получаем список сообщений об опечатках */ /* Получаем список сообщений об опечатках */
function getMessagesList($data) { function getMessagesList($data) {
......
...@@ -11,6 +11,7 @@ export default class SiteList extends React.Component { ...@@ -11,6 +11,7 @@ export default class SiteList extends React.Component {
super(props); super(props);
this.sites = this.props.sites; this.sites = this.props.sites;
this.updateCountTypos();
console.log("Render SiteList"); console.log("Render SiteList");
this.state = { this.state = {
...@@ -56,6 +57,12 @@ export default class SiteList extends React.Component { ...@@ -56,6 +57,12 @@ export default class SiteList extends React.Component {
); );
} }
updateCountTypos(){
for (let i = 0; i < this.sites.length; i += 1) {
this.getCountTypos(this.sites[i], i)
}
}
loadSiteTypos(siteId, done) { loadSiteTypos(siteId, done) {
$.ajax({ $.ajax({
url: `${window.baseUrl}/users/typos/getSiteTypos/${this.sites[siteId].id}`, url: `${window.baseUrl}/users/typos/getSiteTypos/${this.sites[siteId].id}`,
...@@ -83,21 +90,31 @@ export default class SiteList extends React.Component { ...@@ -83,21 +90,31 @@ export default class SiteList extends React.Component {
}); });
} }
getCountTypos(site, num) {
$.ajax({
url: `${window.baseUrl}/users/typos/getCountTypos/${this.sites[num].id}`,
}).done((count) => {
const count_typos = count;
this.sites[num].count = count_typos[0]["count(*)"];
}).fail((error) => {
console.log(error);
});
}
render() { render() {
const tabItems = this.sites.map((site, index) => const tabItems = this.sites.map((site, index) =>
<NavItem key={index}> <NavItem key={index}>
<NavLink className={this.state.activeTab === index ? "active" : ""} <NavLink className={this.state.activeTab === index ? "active" : ""}
onClick={() => { this.updateTab(index) }}> onClick={() => { this.updateTab(index), this.updateCountTypos()}}>
{site.name} {site.name}
<Badge id={site.id + "-typos-count"} className={"typos-count"}>
<Badge id={site.id + "-typos-count"} className={"typos-count"} {site.count}
hidden={this.state.activeTab !== index}>
{this.state.typos.length}
</Badge> </Badge>
</NavLink> </NavLink>
{this.state.activeTab === index && {this.state.activeTab === index &&
<FaRefresh className="refresh-site" title="Обновить" <FaRefresh className="refresh-site" title="Обновить"
onClick={ () => { this.updateTab() } } />} onClick={ () => { this.updateTab(index), this.updateCountTypos() } } />}
</NavItem> </NavItem>
); );
......
...@@ -156,6 +156,6 @@ export default class TypoList extends Component { ...@@ -156,6 +156,6 @@ export default class TypoList extends Component {
* @private * @private
*/ */
updateSiteTyposCount() { updateSiteTyposCount() {
$(`#${this.state.siteId}-typos-count`).text(this.props.typos.length); $(`#${this.state.siteId}-typos-count`);
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment