mirror of
https://github.com/UnickSoft/graphonline.git
synced 2025-08-16 16:16:19 +00:00
Added vote to site
This commit is contained in:
parent
a64fff2dd9
commit
ab0d155367
@ -1,5 +1,5 @@
|
|||||||
Options +ExecCGI
|
#Options +ExecCGI
|
||||||
AddHandler AddType application/x-httpd-php .exe
|
#AddHandler AddType application/x-httpd-php .exe
|
||||||
|
|
||||||
Options -Indexes
|
Options -Indexes
|
||||||
RewriteEngine on
|
RewriteEngine on
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<?
|
<?
|
||||||
|
include ("../core/config/main.php");
|
||||||
include ("saveGraphHelpers.php");
|
include ("saveGraphHelpers.php");
|
||||||
|
|
||||||
$name = $_GET["name"];
|
$name = $_GET["name"];
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<?
|
<?
|
||||||
|
include ("../core/config/main.php");
|
||||||
include ("saveGraphHelpers.php");
|
include ("saveGraphHelpers.php");
|
||||||
|
|
||||||
$graph = file_get_contents("php://input");
|
$graph = file_get_contents("php://input");
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
Function to save/open graph
|
Function to save/open graph
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include ("../core/config/main.php");
|
|
||||||
|
|
||||||
// Only latic.
|
// Only latic.
|
||||||
function isValidName($name)
|
function isValidName($name)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
include ("../core/config/main.php");
|
||||||
include ("saveGraphHelpers.php");
|
include ("saveGraphHelpers.php");
|
||||||
|
|
||||||
$name = $_GET["name"];
|
$name = $_GET["name"];
|
||||||
|
15
cgi-bin/vote.php
Normal file
15
cgi-bin/vote.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?
|
||||||
|
include ("../core/config/main.php");
|
||||||
|
|
||||||
|
if (!isset($_COOKIE["vote0"]))
|
||||||
|
{
|
||||||
|
$index = $_GET["index"];
|
||||||
|
|
||||||
|
setcookie("vote0", "true", time() + 3600 * 24 * 90, '/'); // 3 month
|
||||||
|
|
||||||
|
$file = fopen("../" . $g_config['vote'], "a");
|
||||||
|
fprintf($file, "%d\n", $index);
|
||||||
|
fclose($file);
|
||||||
|
echo ("OK");
|
||||||
|
}
|
||||||
|
?>
|
@ -79,4 +79,6 @@
|
|||||||
// Donate files
|
// Donate files
|
||||||
$g_config['donateTotal'] = "./tmp/donate/total.txt";
|
$g_config['donateTotal'] = "./tmp/donate/total.txt";
|
||||||
$g_config['donateTransactions'] = "./tmp/donate/transactions.txt";
|
$g_config['donateTransactions'] = "./tmp/donate/transactions.txt";
|
||||||
|
$g_config['vote'] = "./tmp/vote/vote.txt";
|
||||||
|
$g_config['voteTopics'] = "./tmp/vote/voteTopics.txt_";
|
||||||
?>
|
?>
|
||||||
|
@ -44,7 +44,8 @@
|
|||||||
array('link' => SiteRoot('admin/page_editor'), 'name' => 'Все страницы', 'label' => 'Смотреть все страницы'),
|
array('link' => SiteRoot('admin/page_editor'), 'name' => 'Все страницы', 'label' => 'Смотреть все страницы'),
|
||||||
array('link' => SiteRoot('admin/page_editor_add'), 'name' => 'Добавить', 'label' => 'Добавить новую страницу'),
|
array('link' => SiteRoot('admin/page_editor_add'), 'name' => 'Добавить', 'label' => 'Добавить новую страницу'),
|
||||||
array('link' => SiteRoot('admin/page_saved_graph'), 'name' => 'Статистика', 'label' => 'Статистика сохранений'),
|
array('link' => SiteRoot('admin/page_saved_graph'), 'name' => 'Статистика', 'label' => 'Статистика сохранений'),
|
||||||
array('link' => SiteRoot('admin/page_example_graph'), 'name' => 'Примеры', 'label' => 'Примеры графов')
|
array('link' => SiteRoot('admin/page_example_graph'), 'name' => 'Примеры', 'label' => 'Примеры графов'),
|
||||||
|
array('link' => SiteRoot('admin/page_vote'), 'name' => 'Голосование', 'label' => 'Результаты голосования')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -100,4 +100,6 @@
|
|||||||
$g_lang["group_rename"] = "Group rename";
|
$g_lang["group_rename"] = "Group rename";
|
||||||
$g_lang["enter_vertices_text_in_each_line"] = "Enter text for each vertex in separate line";
|
$g_lang["enter_vertices_text_in_each_line"] = "Enter text for each vertex in separate line";
|
||||||
$g_lang["or"] = "or";
|
$g_lang["or"] = "or";
|
||||||
|
$g_lang["vote"] = "Vote";
|
||||||
|
$g_lang["vote_question"] = "What functions should we add firstly?";
|
||||||
?>
|
?>
|
||||||
|
@ -104,5 +104,7 @@
|
|||||||
$g_lang["group_rename"] = "Групповое переименование";
|
$g_lang["group_rename"] = "Групповое переименование";
|
||||||
$g_lang["enter_vertices_text_in_each_line"] = "Введите текст для каждой вершины в отдельную строку";
|
$g_lang["enter_vertices_text_in_each_line"] = "Введите текст для каждой вершины в отдельную строку";
|
||||||
$g_lang["or"] = "или";
|
$g_lang["or"] = "или";
|
||||||
|
$g_lang["vote"] = "Опрос";
|
||||||
|
$g_lang["vote_question"] = "Какие функции нам добавить в первую очередь?";
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -398,7 +398,40 @@ function postLoadPage()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (document.getElementById('VoteButton') !== null)
|
||||||
|
document.getElementById('VoteButton').onclick = function ()
|
||||||
|
{
|
||||||
|
var dialogButtons = {};
|
||||||
|
|
||||||
|
for (var i = 0; i < 6 && document.getElementById('vote' + i) !== null; i++)
|
||||||
|
{
|
||||||
|
document.getElementById('vote' + i)["voteIndex"] = i;
|
||||||
|
document.getElementById('vote' + i).onclick = function ()
|
||||||
|
{
|
||||||
|
console.log("Vote" + this["voteIndex"]);
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "/cgi-bin/vote.php?index=" + this["voteIndex"],
|
||||||
|
dataType: "text"
|
||||||
|
});
|
||||||
|
$("#voteDialog").dialog('close');
|
||||||
|
$("#VoteButton").hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dialogButtons[g_close] = function() {
|
||||||
|
$( this ).dialog( "close" );
|
||||||
|
};
|
||||||
|
|
||||||
|
$( "#voteDialog" ).dialog({
|
||||||
|
resizable: false,
|
||||||
|
title: g_vote,
|
||||||
|
width: 400,
|
||||||
|
modal: true,
|
||||||
|
dialogClass: 'EdgeDialog',
|
||||||
|
buttons: dialogButtons,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Get algorithms list and load it.
|
// Get algorithms list and load it.
|
||||||
$.get( "/cgi-bin/getPluginsList.php",
|
$.get( "/cgi-bin/getPluginsList.php",
|
||||||
|
@ -66,6 +66,7 @@ var g_editWeight = "Edit weight";
|
|||||||
|
|
||||||
var g_noWeight = "No weight";
|
var g_noWeight = "No weight";
|
||||||
var g_groupRename = "Group rename";
|
var g_groupRename = "Group rename";
|
||||||
|
var g_vote = "Vote";
|
||||||
|
|
||||||
function loadTexts()
|
function loadTexts()
|
||||||
{
|
{
|
||||||
@ -133,4 +134,5 @@ function loadTexts()
|
|||||||
|
|
||||||
g_noWeight = document.getElementById("noWeight").innerHTML;
|
g_noWeight = document.getElementById("noWeight").innerHTML;
|
||||||
g_groupRename = document.getElementById("groupeRenameText").innerHTML;
|
g_groupRename = document.getElementById("groupeRenameText").innerHTML;
|
||||||
|
g_vote = document.getElementById("voteText").innerHTML;
|
||||||
}
|
}
|
||||||
|
15
src/admin/page_vote.php
Normal file
15
src/admin/page_vote.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include ("cgi-bin/saveGraphHelpers.php");
|
||||||
|
include ("./src/vote_func.php");
|
||||||
|
|
||||||
|
$g_lang["current_language"] = "ru";
|
||||||
|
$voteTopics = getVoteTopics();
|
||||||
|
$votes = getVotes($voteTopics);
|
||||||
|
|
||||||
|
for ($i = 0; $i < count($voteTopics); $i++)
|
||||||
|
{
|
||||||
|
$voteTopics[$i]["vote"] = $votes[$i];
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
10
src/home.php
10
src/home.php
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
include ("./src/donate.php");
|
include ("./src/donate.php");
|
||||||
|
include ("./src/vote_func.php");
|
||||||
|
|
||||||
$graphName = "";
|
$graphName = "";
|
||||||
if (isset($_GET["graph"]))
|
if (isset($_GET["graph"]))
|
||||||
@ -35,4 +36,13 @@
|
|||||||
$g_lang["m_keyWords"] = $graphName . ", " . $g_lang["m_keyWords"];
|
$g_lang["m_keyWords"] = $graphName . ", " . $g_lang["m_keyWords"];
|
||||||
$g_lang["m_description"] = $g_lang["title_notg"] . ": " . $graphName;
|
$g_lang["m_description"] = $g_lang["title_notg"] . ": " . $graphName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$wasVote = (isset($_COOKIE["vote0"]));
|
||||||
|
|
||||||
|
$voteTopics = getVoteTopics();
|
||||||
|
for ($i = 0; $i < count($voteTopics); $i++)
|
||||||
|
{
|
||||||
|
$voteTopics[$i]["index"] = $i;
|
||||||
|
}
|
||||||
|
shuffle($voteTopics);
|
||||||
?>
|
?>
|
||||||
|
48
src/vote_func.php
Normal file
48
src/vote_func.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function getVoteTopics()
|
||||||
|
{
|
||||||
|
global $g_config, $g_lang;
|
||||||
|
|
||||||
|
$voteTopics = array();
|
||||||
|
$voteTopicsFile = $g_config['voteTopics'] . $g_lang["current_language"];
|
||||||
|
$csvTopicFile = fopen($voteTopicsFile, "r");
|
||||||
|
if ($csvTopicFile)
|
||||||
|
{
|
||||||
|
while (($data = fgetcsv($csvTopicFile, 1000, "|")) !== FALSE)
|
||||||
|
{
|
||||||
|
$topic["title"] = $data[0];
|
||||||
|
$topic["desc"] = $data[1];
|
||||||
|
$voteTopics[] = $topic;
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose($csvTopicFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $voteTopics;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getVotes($voteTopics)
|
||||||
|
{
|
||||||
|
global $g_config;
|
||||||
|
|
||||||
|
$votes = array();
|
||||||
|
for ($i = 0; $i < count($voteTopics); $i++)
|
||||||
|
{
|
||||||
|
$votes[] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$voteFile = fopen($g_config['vote'], "r");
|
||||||
|
if ($voteFile)
|
||||||
|
{
|
||||||
|
while (($line = fgets($voteFile)) !== false)
|
||||||
|
{
|
||||||
|
$votes[intval($line)] ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose($voteFile);
|
||||||
|
|
||||||
|
return $votes;
|
||||||
|
}
|
||||||
|
?>
|
6
tmp/auto_merge_css_js/css/.gitignore
vendored
Normal file
6
tmp/auto_merge_css_js/css/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
*.css
|
||||||
|
*.css.gz
|
||||||
|
*.txt
|
||||||
|
**/*.css
|
||||||
|
**/*.css.gz
|
||||||
|
**/*.txt
|
4
tmp/saved/.gitignore
vendored
Normal file
4
tmp/saved/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.png
|
||||||
|
*.xml
|
||||||
|
**/*.png
|
||||||
|
**/*.xml
|
0
tmp/vote/vote.txt
Normal file
0
tmp/vote/vote.txt
Normal file
4
tmp/vote/voteTopics.txt_en
Normal file
4
tmp/vote/voteTopics.txt_en
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
User account|Possibility to store graphs in your user account and other settings.
|
||||||
|
Improved visualization|The ability to change colors for vertexes and edges, as well as the shape and size of the vertexes.
|
||||||
|
Improving the support of large graphs|Make easy work with large graphs with the number of vertixes is more than 300.
|
||||||
|
More algorithms|Add more algorithms: maximum flow, minimum cut, radius, diameter, coloring graph.
|
4
tmp/vote/voteTopics.txt_ru
Normal file
4
tmp/vote/voteTopics.txt_ru
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Личный кабинет|Возможность сохранения графов в своём личном кабинете и другие персоональные настройки.
|
||||||
|
Улучшение визуализации|Возможность изменения цветов для вешин и дуг, а также формы и размеров вершин.
|
||||||
|
Улучшение поддержки больших графов|Удобная работа с графами больших размеров с количеством вершин больше 300.
|
||||||
|
Больше алгоритмов|Добавление большего числа алгоритмов: максимальный поток, минимальный разрез, радиус, диаметр, раскраска графа.
|
@ -4,7 +4,7 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
||||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="admin-menu">
|
<nav class="navbar navbar-inverse" role="navigation" id="admin-menu">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|
||||||
<!-- Логотип и кнопка открытия меню сгруппированы для лучшего отображения на мобильных устройствах -->
|
<!-- Логотип и кнопка открытия меню сгруппированы для лучшего отображения на мобильных устройствах -->
|
||||||
|
10
tpl/admin/page_vote.php
Normal file
10
tpl/admin/page_vote.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
<?php IncludeCom('dev/bootstrap3')?>
|
||||||
|
|
||||||
|
<h1>Голосование</h1>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<? for ($i = 0; $i < count($voteTopics); $i++): ?>
|
||||||
|
<p><?= $voteTopics[$i]["title"] ?> - <?= $voteTopics[$i]["vote"] ?></p>
|
||||||
|
<?php endfor; ?>
|
||||||
|
</div>
|
32
tpl/home.php
32
tpl/home.php
@ -100,6 +100,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="button" class="btn btn-default btn-sm" id="DeleteObject"><span class="glyphicon glyphicon-remove fa-fw"></span><span class="hidden-phone"> <?= L('delete')?></span></button>
|
<button type="button" class="btn btn-default btn-sm" id="DeleteObject"><span class="glyphicon glyphicon-remove fa-fw"></span><span class="hidden-phone"> <?= L('delete')?></span></button>
|
||||||
|
|
||||||
|
<? if (!$wasVote && count($voteTopics) > 0): ?>
|
||||||
|
<button type="button" class="btn btn-success" id="VoteButton"><span class="glyphicon glyphicon-thumbs-up"></span> <?= L('vote') ?></button>
|
||||||
|
<? endif ?>
|
||||||
<!--
|
<!--
|
||||||
<button type="button" class="btn btn-default" id="Test"><span class="glyphicon glyphicon-remove"></span> Test repos</button>
|
<button type="button" class="btn btn-default" id="Test"><span class="glyphicon glyphicon-remove"></span> Test repos</button>
|
||||||
-->
|
-->
|
||||||
@ -274,6 +278,31 @@
|
|||||||
<div><span class="glyphicon glyphicon-remove-sign text-danger"></span> <?= L('bad_inc_matrix_message')?></div>
|
<div><span class="glyphicon glyphicon-remove-sign text-danger"></span> <?= L('bad_inc_matrix_message')?></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="incidenceMatrix">
|
||||||
|
<form>
|
||||||
|
<fieldset>
|
||||||
|
<p><?= L('incidence_matrix_description')?></p>
|
||||||
|
<textarea name="incidenceMatrixField" id="IncidenceMatrixField" wrap="off"></textarea>
|
||||||
|
<p id="BadIncidenceMatrixFormatMessage"><?= L('incidence_matrix_bad_format')?></p>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="voteDialog">
|
||||||
|
<form>
|
||||||
|
<fieldset>
|
||||||
|
<p><?= L('vote_question') ?></p>
|
||||||
|
<? foreach ($voteTopics as $topic): ?>
|
||||||
|
<div class="list-group">
|
||||||
|
<button type="button" class="list-group-item" id="vote<?=$topic["index"]?>">
|
||||||
|
<h4 class="list-group-item-heading"><?= $topic["title"] ?></h4>
|
||||||
|
<p class="list-group-item-text"><?= $topic["desc"] ?></p>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<? endforeach ?>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p id="SelectAndMoveObject" class="translation"><?= L('select_and_move_objects')?></p>
|
<p id="SelectAndMoveObject" class="translation"><?= L('select_and_move_objects')?></p>
|
||||||
<p id="MoveCursorForMoving" class="translation"><?= L('move_cursor_for_moving')?></p>
|
<p id="MoveCursorForMoving" class="translation"><?= L('move_cursor_for_moving')?></p>
|
||||||
@ -339,7 +368,8 @@
|
|||||||
<p id="editWeight" class="translation"><?= L('edit_weight')?></p>
|
<p id="editWeight" class="translation"><?= L('edit_weight')?></p>
|
||||||
<p id="noWeight" class="translation"><?= L('default_weight')?></p>
|
<p id="noWeight" class="translation"><?= L('default_weight')?></p>
|
||||||
<p id="groupeRenameText" class="translation"><?= L('group_rename')?></p>
|
<p id="groupeRenameText" class="translation"><?= L('group_rename')?></p>
|
||||||
|
<p id="voteText" class="translation"><?= L('vote')?></p>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
<!--
|
<!--
|
||||||
<script>
|
<script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user