admin page v1
This commit is contained in:
88
masks/admin.html
Normal file
88
masks/admin.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<div id="admin">
|
||||
<div id="projects">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Project</th>
|
||||
<th>Mode</th>
|
||||
<th>Code Name</th>
|
||||
<th>Start</th>
|
||||
<th>End</th>
|
||||
<th>Time Zone</th>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="feedback"></div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
oSpot.pageInit = function(asHash) {
|
||||
self.get(
|
||||
'get_admin',
|
||||
function(asData){
|
||||
setProjects(asData.projects);
|
||||
},
|
||||
{},
|
||||
function(e){console.log(e);}
|
||||
);
|
||||
};
|
||||
|
||||
oSpot.onFeedback = function(sType, sMsg, asContext) {
|
||||
delete asContext.a;
|
||||
sMsg += ' (context: ';
|
||||
$.each(asContext, function(sKey, sElem) {
|
||||
sMsg += sKey+'='+sElem+' / ' ;
|
||||
});
|
||||
sMsg = sMsg.slice(0, -3)+')';
|
||||
$('#feedback').append($('<p>', {'class': sType}).text(sMsg));
|
||||
};
|
||||
|
||||
function setProjects(asProjects) {
|
||||
$.each(asProjects, function(iKey, oProject) {
|
||||
var sElemId = 'proj_'+oProject.id;
|
||||
var $Project = ($('#'+sElemId).length==0)?$('<tr>', {'id': sElemId}):$('#'+sElemId).empty();
|
||||
|
||||
console.log(sElemId);
|
||||
console.log($('#'.sElemId).length);
|
||||
|
||||
$Project
|
||||
.data('project_id', oProject.id)
|
||||
.append($('<td>', {'class': 'name'}).text(oProject.name))
|
||||
.append($('<td>', {'class': 'mode'}).text(oProject.mode))
|
||||
.append($('<td>').addInput('text', 'codename', oProject.codename))
|
||||
.append($('<td>').addInput('date', 'active_from', oProject.active_from.substr(0, 10)))
|
||||
.append($('<td>').addInput('date', 'active_to', oProject.active_to.substr(0, 10)))
|
||||
.append($('<td>').addInput('text', 'timezone', oProject.timezone))
|
||||
.appendTo($('#projects').find('table'));
|
||||
});
|
||||
|
||||
$('input')
|
||||
.change(commit)
|
||||
.keyup(waitAndCommit);
|
||||
}
|
||||
|
||||
function commit(event, $This) {
|
||||
$This = $This || $(this);
|
||||
var sNewVal = $This.val();
|
||||
if($This.data('old_value')!=sNewVal) { console.log('commit');
|
||||
$This.data('old_value', sNewVal);
|
||||
|
||||
var asInputs = {project_id: $This.closest('tr').data('project_id'), field: $This.attr('name'), value: sNewVal};
|
||||
self.get(
|
||||
'set_admin',
|
||||
function(asData){
|
||||
oSpot.onFeedback('success', 'Sauvegarde OK', asInputs);
|
||||
setProjects([asData.values]);
|
||||
},
|
||||
asInputs,
|
||||
function(sError){
|
||||
oSpot.onFeedback('error', sError, asInputs);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function waitAndCommit(event) { console.log('waitAndCommit');
|
||||
if(typeof self.tmp('wait') != 'undefined') clearTimeout(self.tmp('wait'));
|
||||
self.tmp('wait', setTimeout(()=>{commit(event,$(this));}, 1000));
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user