Commit 325f34f6 authored by George Popoff's avatar George Popoff

add context field to message panel

parent 75d330c7
......@@ -82,7 +82,7 @@ class Typo extends CI_Model {
if ( $table == "messages" ) {
$this->db->select("m.id as message_id, m.link as link, m.text as text, "
. "m.comment as comment, m.date as message_date, m.status as message_status, u.*");
. "m.comment as comment, m.context as context, m.date as message_date, m.status as message_status, u.*");
$this->db->from("messages as m, users as u");
$this->db->join("responsible as r", "r.id_user = u.id AND"
. " r.id_site = m.site_id AND r.id_user = u.id");
......@@ -141,9 +141,14 @@ class Typo extends CI_Model {
$data['rows'][$id]['id'] = $row->message_id;
$data['rows'][$id]['cell'][] = $row->message_id;
$data['rows'][$id]['cell'][] = $row->message_status;
$data['rows'][$id]['cell'][] = anchor($row->link, 'ссылка', array('class' => 'typos_link', 'target' => '_blank'));;
$data['rows'][$id]['cell'][] = anchor($row->link, 'ссылка', array('class' => 'typos_link', 'target' => '_blank'));
$data['rows'][$id]['cell'][] = $row->text;
$data['rows'][$id]['cell'][] = $row->comment;
$data['rows'][$id]['cell'][] = anchor("#", 'показать',
array('class' => 'typos_context',
'onclick'=> 'return Typos.handleLink(this);',
'typo' => $row->text, 'context' => $row->context,
'correct' => $row->comment));
$data['rows'][$id]['cell'][] = $row->message_date;
}
}
......
<div class="body">
<!-- -->
<link rel="stylesheet" type="text/css" media="screen" href="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/css/ui.jqgrid.css" />
<!-- -->
<link rel="stylesheet" type="text/css" media="screen" href="<?= $base_url ?>javascript/jquery_plugins/jqGrid/4.4.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/js/i18n/grid.locale-ru.js"></script>
<script type="text/javascript" src="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/src/grid.subgrid.js"></script>
<!-- -->
<script type="text/javascript" src="<?= $base_url ?>javascript/jquery_plugins/jqGrid/4.4.0/js/i18n/grid.locale-ru.js"></script>
<script type="text/javascript" src="<?= $base_url ?>javascript/jquery_plugins/jqGrid/4.4.0/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="<?= $base_url ?>javascript/jquery_plugins/jqGrid/4.4.0/src/grid.subgrid.js"></script>
<script type="text/javascript" src="<?= $base_url ?>javascript/typos.js"></script>
<table id="table_sites"></table>
<div id="additional_panel"></div>
<!-- -->
<script type="text/javascript">
<table id="table_sites"></table>
<div id="additional_panel"></div>
jQuery("#table_sites").jqGrid({ //Привязка плагина к таблице
url: '<?=$base_url?>users/typos/get_list_sites', //Получить список сайтов пользователя
editurl: '<?=$base_url?>users/typos/panel_sites',
datatype: "json", //Формат скрипта-обработчика
colNames:['Номер', 'Сайт', 'Подписан'],
colModel:[
{name:"id", index:'s.id', width:10, searchtype:"integer", align:'center'},
{name:"site", index:'s.site', align:'center', width:20, searchtype:"string"},
{name:"status", index:'r.status', editable: true, align:'center', width:20, edittype:"checkbox", editoptions: {value:"1:0"}, searchtype:"integer", formatter:'checkbox'}
],
//Подтаблица с сообщениями об опечатках
subGrid : true,
subGridRowExpanded: function(subgrid_id, row_id) {
//Дополнительные переменные
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id+"_t";
pager_id = "p_"+subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url: '<?=$base_url?>users/typos/get_list_messages?id='+row_id,
editurl: '<?=$base_url?>users/typos/panel_messages?id_site='+row_id+'&id='+row_id,
datatype: "json",
colNames: ['Номер', 'Принято?', 'Ссылка', 'Текст', 'Исправление', 'Дата добавления'],
<script type="text/javascript">
jQuery("#table_sites").jqGrid({//Привязка плагина к таблице
url: '<?= $base_url ?>users/typos/get_list_sites', //Получить список сайтов пользователя
editurl: '<?= $base_url ?>users/typos/panel_sites',
datatype: "json", //Формат скрипта-обработчика
colNames: ['Номер', 'Сайт', 'Подписан'],
colModel: [
{name:"id",index:"m.id",width:80, searchtype:"integer", align:'center'},
{name:"status",index:"m.status",width:80, editable:true, edittype:"checkbox", editoptions: {value:"1:0"}, searchtype:"integer", align:'center', formatter:'checkbox'},
{name:"link",index:"m.link",width:80, sortable:false, searchtype:"string", align:'center', editable:true},
{name:"error_text",index:"m.error_text",width:80, sortable:false, searchtype:"string", align:'center', editable:true},
{name:"comment",index:"m.comment",width:80, sortable:false, searchtype:"string", align:'center', editable:true },
{name:"date",index:"m.date",width:120, searchtype:"date", align:'center'},
{name: "id", index: 's.id', width: 10, searchtype: "integer", align: 'center'},
{name: "site", index: 's.site', align: 'center', width: 20, searchtype: "string"},
{name: "status", index: 'r.status', editable: true, align: 'center', width: 20, edittype: "checkbox", editoptions: {value: "1:0"}, searchtype: "integer", formatter: 'checkbox'}
],
rowNum:20,
pager: pager_id,
sortname: 'm.date',
sortorder: 'desc',
//Подтаблица с сообщениями об опечатках
subGrid: true,
subGridRowExpanded: function (subgrid_id, row_id) {
//Дополнительные переменные
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id + "_t";
pager_id = "p_" + subgrid_table_id;
$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
jQuery("#" + subgrid_table_id).jqGrid({
url: '<?= $base_url ?>users/typos/get_list_messages?id=' + row_id,
editurl: '<?= $base_url ?>users/typos/panel_messages?id_site=' + row_id + '&id=' + row_id,
datatype: "json",
colNames: ['Номер', 'Принято?', 'Ссылка', 'Текст', 'Исправление', 'Контекст', 'Дата добавления'],
colModel: [
{name: "id", index: "m.id", width: 80, searchtype: "integer", align: 'center'},
{name: "status", index: "m.status", width: 80, editable: true, edittype: "checkbox", editoptions: {value: "1:0"}, searchtype: "integer", align: 'center', formatter: 'checkbox'},
{name: "link", index: "m.link", width: 80, sortable: false, searchtype: "string", align: 'center', editable: true},
{name: "error_text", index: "m.error_text", width: 80, sortable: false, searchtype: "string", align: 'center', editable: true},
{name: "comment", index: "m.comment", width: 80, sortable: false, searchtype: "string", align: 'center', editable: true},
{name: "context", index: "m.context", width: 80, searchtype: "text", sortable: false, editable: false, align: 'center'},
{name: "date", index: "m.date", width: 120, searchtype: "date", align: 'center'},
],
rowNum: 20,
pager: pager_id,
sortname: 'm.date',
sortorder: 'desc',
height: '100%',
width: 1000,
});
jQuery("#" + subgrid_table_id).jqGrid(
'navGrid', "#" + pager_id,
{edit: true, add: true, del: true},
{
//Скрываем ненужные поля при редактировании
afterShowForm: function () {
$('#tr_link').css('display', 'none');
$('#tr_error_text').css('display', 'none');
$('#tr_comment').css('display', 'none');
},
},
{
//При добавлении показываем поля (т.к. редактирование - скрывает их навсегда)
afterShowForm: function () {
$('#tr_link').css('display', 'table-row');
$('#tr_error_text').css('display', 'table-row');
$('#tr_comment').css('display', 'table-row');
}
}
)
},
caption: "Сайты",
rowNum: 10,
rowList: [10, 20, 30],
width: 1200,
height: '100%',
width: 1000
pager: '#additional_panel', //Привязка к таблице тулбара
sortname: 's.id',
viewrecords: true,
sortorder: "asc"
});
jQuery("#"+subgrid_table_id).jqGrid(
'navGrid',"#"+pager_id,
{edit:true,add:true,del:true},
{
//Скрываем ненужные поля при редактировании
afterShowForm:function() {
$('#tr_link').css('display','none');
$('#tr_error_text').css('display','none');
$('#tr_comment').css('display','none');
},
},
{
//При добавлении показываем поля (т.к. редактирование - скрывает их навсегда)
afterShowForm:function() {
$('#tr_link').css('display','table-row');
$('#tr_error_text').css('display','table-row');
$('#tr_comment').css('display','table-row');
}
}
)
},
caption: "Сайты",
rowNum:10,
rowList:[10,20,30],
width:1200,
height: '100%',
pager: '#additional_panel', //Привязка к таблице тулбара
sortname: 's.id',
viewrecords: true,
sortorder: "asc"
});
jQuery("#table_sites").jqGrid(
'navGrid','#additional_panel', //Управление тулбаром таблицы
{edit:true,add:false,del:false} //Отключаем от тулбара редактирование, добавление и удаление записей. На тулбаре останутся только две кнопки: "Поиск" и "Обновить"
);
</script>
jQuery("#table_sites").jqGrid(
'navGrid', '#additional_panel', //Управление тулбаром таблицы
{edit: true, add: false, del: false} //Отключаем от тулбара редактирование, добавление и удаление записей. На тулбаре останутся только две кнопки: "Поиск" и "Обновить"
);
</script>
<div id="context-block" title="Контекст ошибки" class="hidden">
<p id="context-block-text"></p>
</div>
</div>
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
document.addEventListener("DOMContentLoaded", function() {
Typos._init();
});
var Typos = {
_init: function() {
this.contextBlock = $("#context-block");
this.contextBlockText = this.contextBlock.children().first();
},
/**
* Показывает окно, содержащее информацию о контексте.
* @param {type} link Элемент a.typos_context
* @returns {Boolean}
*/
handleLink: function(link) {
var text = link.getAttribute("context");
var typo = link.getAttribute("typo");
var correct = link.getAttribute("correct");
var self = this;
text = text.replace(typo, "<span class='typo'>" + typo + " -> " + correct + "</span>");
self.contextBlockText.html(text);
self.contextBlock.dialog();
return false;
}
};
......@@ -30,4 +30,8 @@
padding-top: 50px;
clear: both;
text-align: center;
}
.typo {
background-color: rgba(200, 200, 10, 0.2);
}
\ 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