2007-11-18 08:05:39 +00:00
|
|
|
var TracksForm = {
|
2009-10-18 18:40:48 -04:00
|
|
|
toggle: function(toggleDivId, formContainerId, formId, hideLinkText,
|
|
|
|
|
hideLinkTitle, showLinkText, showLinkTitle) {
|
2009-09-22 07:37:37 -04:00
|
|
|
$('#'+formContainerId).toggle();
|
|
|
|
|
toggleDiv = $('#'+toggleDivId);
|
|
|
|
|
toggleLink = toggleDiv.find('a');
|
|
|
|
|
if (toggleDiv.hasClass('hide_form')) {
|
|
|
|
|
toggleLink.text(showLinkText).attr('title', showLinkTitle);
|
2008-07-19 20:27:45 +02:00
|
|
|
}
|
|
|
|
|
else {
|
2009-09-22 07:37:37 -04:00
|
|
|
toggleLink.text(hideLinkText).attr('title', hideLinkTitle);
|
2009-10-30 15:02:42 -04:00
|
|
|
$('#'+formId+' input:text:first').focus();
|
2008-07-19 20:27:45 +02:00
|
|
|
}
|
2009-09-22 07:37:37 -04:00
|
|
|
toggleDiv.toggleClass('hide_form');
|
2008-07-19 20:27:45 +02:00
|
|
|
},
|
|
|
|
|
hide_all_recurring: function () {
|
2009-10-18 18:23:42 -04:00
|
|
|
$('#recurring_daily').hide();
|
|
|
|
|
$('#recurring_weekly').hide();
|
|
|
|
|
$('#recurring_monthly').hide();
|
|
|
|
|
$('#recurring_yearly').hide();
|
2008-07-19 20:27:45 +02:00
|
|
|
},
|
|
|
|
|
hide_all_edit_recurring: function () {
|
2009-10-18 18:23:42 -04:00
|
|
|
$('#recurring_edit_daily').hide();
|
|
|
|
|
$('#recurring_edit_weekly').hide();
|
|
|
|
|
$('#recurring_edit_monthly').hide();
|
|
|
|
|
$('#recurring_edit_yearly').hide();
|
2008-07-19 20:27:45 +02:00
|
|
|
},
|
|
|
|
|
toggle_overlay: function () {
|
|
|
|
|
el = document.getElementById("overlay");
|
|
|
|
|
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
|
2007-11-18 08:05:39 +00:00
|
|
|
}
|
|
|
|
|
}
|
2008-07-19 20:27:45 +02:00
|
|
|
|
2009-09-07 18:44:23 -04:00
|
|
|
$.fn.clearForm = function() {
|
|
|
|
|
return this.each(function() {
|
|
|
|
|
var type = this.type, tag = this.tagName.toLowerCase();
|
|
|
|
|
if (tag == 'form')
|
|
|
|
|
return $(':input',this).clearForm();
|
|
|
|
|
if (type == 'text' || type == 'password' || tag == 'textarea')
|
|
|
|
|
this.value = '';
|
|
|
|
|
else if (type == 'checkbox' || type == 'radio')
|
|
|
|
|
this.checked = false;
|
|
|
|
|
else if (tag == 'select')
|
|
|
|
|
this.selectedIndex = -1;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2009-09-05 15:21:42 -04:00
|
|
|
/****************************************
|
|
|
|
|
* Unobtrusive jQuery written by Eric Allen
|
|
|
|
|
****************************************/
|
|
|
|
|
|
|
|
|
|
/* Set up authenticity token proplery */
|
|
|
|
|
$(document).ajaxSend(function(event, request, settings) {
|
|
|
|
|
if ( settings.type == 'POST' ) {
|
2009-10-02 18:55:23 -04:00
|
|
|
if(typeof(AUTH_TOKEN) != 'undefined'){
|
|
|
|
|
settings.data = (settings.data ? settings.data + "&" : "")
|
|
|
|
|
+ "authenticity_token=" + encodeURIComponent( AUTH_TOKEN ) + "&"
|
|
|
|
|
+ "_source_view=" + encodeURIComponent( SOURCE_VIEW );
|
|
|
|
|
} else {
|
|
|
|
|
settings.data = (settings.data ? settings.data + "&" : "")
|
|
|
|
|
+ "_source_view=" + encodeURIComponent( SOURCE_VIEW );
|
|
|
|
|
}
|
2009-09-05 15:21:42 -04:00
|
|
|
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
|
}
|
|
|
|
|
request.setRequestHeader("Accept", "text/javascript");
|
2007-03-30 04:36:52 +00:00
|
|
|
});
|
|
|
|
|
|
2009-09-06 19:41:27 -04:00
|
|
|
todoItems = {
|
|
|
|
|
// public
|
|
|
|
|
ensureVisibleWithEffectAppear: function(elemId){
|
|
|
|
|
$('#'+elemId).fadeIn(400);
|
|
|
|
|
},
|
|
|
|
|
expandNextActionListing: function(itemsElem, skipAnimation) {
|
|
|
|
|
itemsElem = $(itemsElem);
|
|
|
|
|
if(skipAnimation == true) {
|
|
|
|
|
itemsElem.show();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
itemsElem.show('blind', 400);
|
|
|
|
|
}
|
|
|
|
|
todoItems.showContainer(itemsElem.parentNode);
|
|
|
|
|
},
|
|
|
|
|
collapseNextActionListing: function(itemsElem, skipAnimation) {
|
|
|
|
|
itemsElem = $(itemsElem);
|
|
|
|
|
if(skipAnimation == true) {
|
|
|
|
|
itemsElem.hide();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
itemsElem.hide('blind', 400);
|
|
|
|
|
}
|
|
|
|
|
todoItems.hideContainer(itemsElem.parentNode);
|
|
|
|
|
},
|
|
|
|
|
ensureContainerHeight: function(itemsElem) {
|
|
|
|
|
$(itemsElem).css({height: '', overflow: ''});
|
|
|
|
|
},
|
|
|
|
|
expandNextActionListingByContext: function(itemsElemId, skipAnimation){
|
2009-09-22 22:21:57 -04:00
|
|
|
todoItems.expandNextActionListing($('#'+itemsElemId).get(), skipAnimation);
|
2009-09-06 19:41:27 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// private
|
|
|
|
|
buildCookieName: function(containerElem) {
|
|
|
|
|
tracks_login = $.cookie('tracks_login');
|
|
|
|
|
return 'tracks_'+tracks_login+'_context_' + containerElem.id + '_collapsed';
|
|
|
|
|
},
|
|
|
|
|
showContainer: function(containerElem) {
|
|
|
|
|
imgSrc = $(containerElem).find('.container_toggle img').attr('src');
|
|
|
|
|
$(containerElem).find('.container_toggle img').attr('src', imgSrc.replace('expand', 'collapse'));
|
|
|
|
|
},
|
|
|
|
|
hideContainer: function (containerElem) {
|
|
|
|
|
imgSrc = $(containerElem).find('.container_toggle img').attr('src');
|
|
|
|
|
$(containerElem).find('.container_toggle img').attr('src', imgSrc.replace('collapse', 'expand'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-09-05 15:21:42 -04:00
|
|
|
function setup_container_toggles(){
|
|
|
|
|
// bind handlers
|
2009-09-06 19:41:27 -04:00
|
|
|
$('.container_toggle').click(function(evt){
|
|
|
|
|
toggle_target = $(this.parentNode.parentNode).find('.toggle_target');
|
|
|
|
|
if(toggle_target.is(':visible')){
|
|
|
|
|
// hide it
|
|
|
|
|
imgSrc = $(this).find('img').attr('src');
|
|
|
|
|
$(this).find('img').attr('src', imgSrc.replace('collapse', 'expand'));
|
|
|
|
|
$.cookie(todoItems.buildCookieName(this.parentNode.parentNode), true);
|
|
|
|
|
} else {
|
|
|
|
|
// show it
|
|
|
|
|
imgSrc = $(this).find('img').attr('src');
|
|
|
|
|
$(this).find('img').attr('src', imgSrc.replace('expand', 'collapse'));
|
|
|
|
|
$.cookie(todoItems.buildCookieName(this.parentNode.parentNode), null);
|
|
|
|
|
}
|
|
|
|
|
toggle_target.toggle('blind');
|
|
|
|
|
});
|
2009-09-05 15:21:42 -04:00
|
|
|
// set to cookied state
|
2009-09-06 19:41:27 -04:00
|
|
|
$('.container.context').each(function(){
|
|
|
|
|
if($.cookie(todoItems.buildCookieName(this))){
|
|
|
|
|
imgSrc = $(this).find('.container_toggle img').attr('src');
|
|
|
|
|
$(this).find('.container_toggle img').attr('src', imgSrc.replace('collapse', 'expand'));
|
|
|
|
|
$(this).find('.toggle_target').hide();
|
2009-10-18 18:40:48 -04:00
|
|
|
}
|
|
|
|
|
});
|
2009-09-05 15:21:42 -04:00
|
|
|
}
|
|
|
|
|
|
2009-09-21 22:59:46 -04:00
|
|
|
function askIfNewContextProvided() {
|
|
|
|
|
var givenContextName = $('#todo_context_name').val();
|
|
|
|
|
if (givenContextName.length == 0) return true; // do nothing and depend on rails validation error
|
|
|
|
|
for (var i = 0; i < contextNames.length; ++i) {
|
|
|
|
|
if (contextNames[i] == givenContextName) return true;
|
|
|
|
|
}
|
|
|
|
|
return confirm('New context "' + givenContextName + '" will be also created. Are you sure?');
|
|
|
|
|
}
|
|
|
|
|
|
2009-10-02 19:45:49 -04:00
|
|
|
function update_order(event, ui){
|
2009-10-18 18:40:48 -04:00
|
|
|
container = $(ui.item).parent();
|
|
|
|
|
row = $(ui.item).children('.sortable_row');
|
|
|
|
|
|
|
|
|
|
url = '';
|
|
|
|
|
if(row.hasClass('context'))
|
|
|
|
|
url = '/contexts/order';
|
|
|
|
|
else if(row.hasClass('project'))
|
|
|
|
|
url = '/projects/order';
|
|
|
|
|
else {
|
|
|
|
|
console.log("Bad sortable list");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
$.post(url,
|
|
|
|
|
container.sortable("serialize"),
|
|
|
|
|
function(){row.effect('highlight', {}, 1000)},
|
|
|
|
|
'script');
|
2009-09-25 20:15:34 -04:00
|
|
|
}
|
|
|
|
|
|
2009-09-05 15:21:42 -04:00
|
|
|
/* Unobtrusive jQuery behavior */
|
|
|
|
|
|
2009-10-02 15:48:24 -04:00
|
|
|
function project_defaults(){
|
|
|
|
|
if(defaultContexts[$(this).val()] !== undefined) {
|
|
|
|
|
context_name = $(this).parents('form').find('input[name=context_name]');
|
|
|
|
|
if(context_name.attr('edited') === undefined){
|
|
|
|
|
context_name.val(defaultContexts[$(this).val()]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(defaultTags[$(this).val()] !== undefined) {
|
|
|
|
|
tag_list = $(this).parents('form').find('input[name=tag_list]');
|
|
|
|
|
if(tag_list.attr('edited') === undefined){
|
|
|
|
|
tag_list.val(defaultTags[$(this).val()]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-10-01 22:32:12 -04:00
|
|
|
function enable_rich_interaction(){
|
|
|
|
|
$('input.Date').datepicker();
|
|
|
|
|
/* Autocomplete */
|
|
|
|
|
$('input[name=context_name]').autocomplete(contextNames);
|
2009-10-07 11:41:31 -04:00
|
|
|
$('input[name=project[default_context_name]]').autocomplete(contextNames);
|
2009-10-01 22:32:12 -04:00
|
|
|
$('input[name=project_name]').autocomplete(projectNames);
|
2009-10-16 19:23:11 -04:00
|
|
|
$('input[name=tag_list]').autocomplete(tagNames, {multiple: true,multipleSeparator:','});
|
2009-10-02 15:48:24 -04:00
|
|
|
|
|
|
|
|
/* have to bind on keypress because of limitataions of live() */
|
|
|
|
|
$('input[name=project_name]').live('keypress', function(){
|
|
|
|
|
$(this).bind('blur', project_defaults);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('input[name=context_name]').live('keypress', function(){
|
|
|
|
|
$(this).attr('edited', 'true');
|
|
|
|
|
});
|
|
|
|
|
$('input[name=tag_list]').live('keypress', function(){
|
|
|
|
|
$(this).attr('edited', 'true');
|
|
|
|
|
});
|
2009-10-01 22:32:12 -04:00
|
|
|
}
|
|
|
|
|
|
2009-09-05 15:21:42 -04:00
|
|
|
$(document).ready(function() {
|
2009-10-16 23:52:52 -04:00
|
|
|
$('#search-form #search').focus();
|
|
|
|
|
|
2009-09-07 18:44:23 -04:00
|
|
|
/* Nifty corners */
|
|
|
|
|
Nifty("div#recurring_new_container","normal");
|
2009-10-16 23:52:52 -04:00
|
|
|
Nifty("div#context_new_container","normal");
|
|
|
|
|
Nifty("div#feedlegend","normal");
|
|
|
|
|
Nifty("div#feedicons-project","normal");
|
|
|
|
|
Nifty("div#feedicons-context","normal");
|
|
|
|
|
Nifty("div#todo_new_action_container","normal");
|
|
|
|
|
|
|
|
|
|
/* Moved from standard.html.erb layout */
|
|
|
|
|
$('ul.sf-menu').superfish({
|
|
|
|
|
delay: 250,
|
|
|
|
|
animation: {opacity:'show',height:'show'},
|
|
|
|
|
autoArrows: false,
|
|
|
|
|
dropShadows: false,
|
|
|
|
|
speed: 'fast'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('ul.sf-item-menu').superfish({ /* context menu */
|
|
|
|
|
delay: 100,
|
|
|
|
|
animation: {opacity:'show',height:'show'},
|
|
|
|
|
autoArrows: false,
|
|
|
|
|
dropShadows: false,
|
|
|
|
|
speed: 'fast',
|
|
|
|
|
onBeforeShow: function() { /* highlight todo */
|
|
|
|
|
$(this.parent().parent().parent()).addClass("sf-item-selected");
|
|
|
|
|
},
|
|
|
|
|
onHide: function() { /* remove hightlight from todo */
|
|
|
|
|
$(this.parent().parent().parent()).removeClass("sf-item-selected");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/* for toggle notes link in mininav */
|
2009-10-18 18:40:48 -04:00
|
|
|
$("#toggle-notes-nav").click(function () { $(".todo_notes").toggle(); });
|
2009-10-17 00:03:12 -04:00
|
|
|
|
2009-10-16 23:52:52 -04:00
|
|
|
/* show the notes of a todo */
|
2009-10-17 00:03:12 -04:00
|
|
|
$(".show_notes").live('click', function () {
|
|
|
|
|
$(this).next().toggle("fast"); return false;
|
|
|
|
|
});
|
2009-09-07 18:44:23 -04:00
|
|
|
|
2009-09-06 20:00:29 -04:00
|
|
|
/* fade flashes and alerts in automatically */
|
2009-09-07 18:44:23 -04:00
|
|
|
$(".alert").fadeOut(8000);
|
2009-09-05 15:21:42 -04:00
|
|
|
|
|
|
|
|
/* set behavior for star icon */
|
2009-10-18 18:40:48 -04:00
|
|
|
$(".item-container a.star_item").live('click', function (ev){
|
|
|
|
|
$.post(this.href, {_method: 'put'}, null, 'script');
|
|
|
|
|
return false;
|
|
|
|
|
});
|
2009-09-05 15:21:42 -04:00
|
|
|
|
|
|
|
|
/* set behavior for toggle checkboxes */
|
2009-10-18 18:40:48 -04:00
|
|
|
$(".item-container input.item-checkbox").live('click', function(ev){
|
|
|
|
|
params = {_method: 'put'};
|
|
|
|
|
if(typeof(TAG_NAME) !== 'undefined')
|
|
|
|
|
params._tag_name = TAG_NAME;
|
|
|
|
|
$.post(this.value, params, null, 'script');
|
|
|
|
|
});
|
2009-09-05 15:21:42 -04:00
|
|
|
|
|
|
|
|
setup_container_toggles();
|
2009-09-06 20:00:19 -04:00
|
|
|
|
2009-09-07 16:58:26 -04:00
|
|
|
$('#toggle_action_new').click(function(){
|
|
|
|
|
TracksForm.toggle('toggle_action_new', 'todo_new_action', 'todo-form-new-action',
|
2009-09-22 07:37:37 -04:00
|
|
|
'« Hide form', 'Hide next action form',
|
|
|
|
|
'Add a next action »', 'Add a next action');
|
2009-09-07 16:58:26 -04:00
|
|
|
});
|
|
|
|
|
|
2009-10-02 15:25:20 -04:00
|
|
|
$('.edit-form a.negative').live('click', function(){
|
2009-09-07 16:58:26 -04:00
|
|
|
$(this).parents('.container').find('.item-show').show();
|
2009-10-02 15:25:20 -04:00
|
|
|
$(this).parents('.container').find('.project').show();
|
2009-09-07 16:58:26 -04:00
|
|
|
$(this).parents('.edit-form').hide();
|
|
|
|
|
});
|
|
|
|
|
|
2009-10-18 18:40:48 -04:00
|
|
|
/* add behavior to clear the date both buttons for show_from and due */
|
2009-09-07 16:58:26 -04:00
|
|
|
$(".date_clear").live('click', function() {
|
|
|
|
|
$(this).prev().val('');
|
2009-09-07 18:44:23 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/* recurring todo behavior */
|
|
|
|
|
|
|
|
|
|
/* behavior for delete icon */
|
|
|
|
|
$('.item-container a.delete_icon').live('click', function(evt){
|
|
|
|
|
evt.preventDefault();
|
|
|
|
|
params = {};
|
|
|
|
|
if(typeof(TAG_NAME) !== 'undefined'){
|
|
|
|
|
params._tag_name = TAG_NAME;
|
|
|
|
|
}
|
|
|
|
|
if(confirm("Are you sure that you want to "+this.title+"?")){
|
|
|
|
|
itemContainer = $(this).parents(".item-container");
|
|
|
|
|
itemContainer.block({message: null});
|
|
|
|
|
params._method = 'delete';
|
|
|
|
|
$.post(this.href, params, function(){
|
|
|
|
|
itemContainer.unblock();
|
|
|
|
|
}, 'script');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/* behavior for edit icon */
|
|
|
|
|
$('.item-container a.edit_icon').live('click', function(evt){
|
|
|
|
|
evt.preventDefault();
|
|
|
|
|
params = {};
|
|
|
|
|
if(typeof(TAG_NAME) !== 'undefined'){
|
|
|
|
|
params._tag_name = TAG_NAME;
|
|
|
|
|
}
|
|
|
|
|
itemContainer = $(this).parents(".item-container");
|
|
|
|
|
$(this).effect('pulsate', {times: 1}, 800);
|
|
|
|
|
$.get(this.href, params, function(){
|
|
|
|
|
}, 'script');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("#recurring_todo_new_action_cancel").click(function(){
|
|
|
|
|
$('#recurring-todo-form-new-action').clearForm();
|
2009-10-30 15:02:42 -04:00
|
|
|
$('#recurring-todo-form-new-action input:text:first').focus();
|
2009-09-07 18:44:23 -04:00
|
|
|
TracksForm.hide_all_recurring();
|
|
|
|
|
$('#recurring_daily').show();
|
|
|
|
|
TracksForm.toggle_overlay();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("#recurring_todo_edit_action_cancel").live('click', function(){
|
|
|
|
|
$('#recurring-todo-form-edit-action').clearForm();
|
2009-10-30 15:02:42 -04:00
|
|
|
$('#recurring-todo-form-edit-action input:text:first').focus();
|
2009-09-07 18:44:23 -04:00
|
|
|
TracksForm.hide_all_recurring();
|
|
|
|
|
$('#recurring_daily').show();
|
|
|
|
|
TracksForm.toggle_overlay();
|
|
|
|
|
});
|
|
|
|
|
$("#recurring_edit_period input").live('click', function(){
|
|
|
|
|
$.each(['daily', 'weekly', 'monthly', 'yearly'], function(){
|
|
|
|
|
$('#recurring_edit_'+this).hide();
|
|
|
|
|
});
|
|
|
|
|
$('#recurring_edit_'+this.id.split('_')[5]).show();
|
|
|
|
|
});
|
2009-09-22 07:37:37 -04:00
|
|
|
|
2009-09-27 22:38:21 -04:00
|
|
|
$('div.context span#context_name').editable(function(value, settings){
|
|
|
|
|
context_id = $(this).parents('.container.context').get(0).id.split('c')[1];
|
|
|
|
|
highlight = function(){
|
|
|
|
|
$('div.context span#context_name').effect('highlight', {}, 500);
|
|
|
|
|
};
|
|
|
|
|
$.post('/contexts/update/'+context_id, {'context[name]': value}, highlight);
|
|
|
|
|
return(value);
|
2009-10-02 18:55:23 -04:00
|
|
|
}, {style: 'padding:0px', submit: "OK"});
|
2009-09-27 22:38:21 -04:00
|
|
|
|
2009-09-22 07:37:37 -04:00
|
|
|
/* Projects behavior */
|
2009-10-18 18:40:48 -04:00
|
|
|
|
|
|
|
|
save_project_name = function(value, settings){
|
2009-10-13 22:34:37 -04:00
|
|
|
project_id = $(this).parents('.container').children('div').get(0).id.split('_')[2];
|
|
|
|
|
highlight = function(){
|
|
|
|
|
$('h2#project_name').effect('highlight', {}, 500);
|
|
|
|
|
};
|
|
|
|
|
$.post('/projects/update/'+project_id, {'project[name]': value, 'update_project_name': 'true'}, highlight, 'script');
|
|
|
|
|
return(value);
|
2009-10-18 18:40:48 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
$('h2#project_name').editable(save_project_name, {style: 'padding:0px', submit: "OK"});
|
2009-10-13 22:34:37 -04:00
|
|
|
|
2009-09-22 07:37:37 -04:00
|
|
|
$('.alphabetize_link').click(function(evt){
|
|
|
|
|
evt.preventDefault();
|
|
|
|
|
if(confirm('Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order.')){
|
|
|
|
|
alphaSort = $(this).parents('.alpha_sort');
|
|
|
|
|
alphaSort.block({message:null});
|
|
|
|
|
$.post(this.href, {}, function(){alphaSort.unblock()}, 'script');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('.actionize_link').click(function(evt){
|
|
|
|
|
evt.preventDefault();
|
|
|
|
|
if(confirm('Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order.')){
|
|
|
|
|
taskSort = $(this).parents('.tasks_sort');
|
|
|
|
|
taskSort.block({message:null});
|
|
|
|
|
$.post(this.href, {}, function(){taskSort.unblock()}, 'script');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('a.delete_project_button').live('click', function(evt){
|
|
|
|
|
evt.preventDefault();
|
|
|
|
|
if(confirm("Are you sure that you want to "+this.title+"?")){
|
|
|
|
|
$(this).parents('.project').block({message: null});
|
|
|
|
|
params = {_method: 'delete'};
|
|
|
|
|
$.post(this.href, params, null, 'script');
|
|
|
|
|
}
|
2009-10-02 19:45:49 -04:00
|
|
|
});
|
2009-09-22 07:37:37 -04:00
|
|
|
|
|
|
|
|
$('#toggle_project_new').click(function(evt){
|
|
|
|
|
TracksForm.toggle('toggle_project_new', 'project_new', 'project-form',
|
|
|
|
|
'« Hide form', 'Hide new project form',
|
|
|
|
|
'Create a new project »', 'Add a project');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$(".project-list .edit-form a.negative").live('click', function(evt){
|
|
|
|
|
evt.preventDefault();
|
|
|
|
|
$(this).parents('.list').find('.project').show();
|
|
|
|
|
$(this).parents('.edit-form').hide();
|
|
|
|
|
$(this).parents('.edit-form').find('form').clearForm();
|
|
|
|
|
});
|
|
|
|
|
|
2009-10-15 21:16:22 -04:00
|
|
|
$(".add_note_link a").live('click', function(){
|
|
|
|
|
$('#new-note').show();
|
|
|
|
|
$('#new-note form').clearForm();
|
2009-10-30 15:02:42 -04:00
|
|
|
$('#new-note form input:text:first').focus();
|
2009-10-15 21:16:22 -04:00
|
|
|
});
|
|
|
|
|
|
2009-10-02 19:45:49 -04:00
|
|
|
$("#list-active-projects").sortable({handle: '.handle', update: update_order});
|
|
|
|
|
$("#list-hidden-projects").sortable({handle: '.handle', update: update_order});
|
|
|
|
|
$("#list-completed-projects").sortable({handle: '.handle', update: update_order});
|
2009-10-02 15:25:20 -04:00
|
|
|
|
2009-10-02 19:45:49 -04:00
|
|
|
/* Contexts behavior */
|
|
|
|
|
$('#toggle_context_new').click(function(evt){
|
|
|
|
|
TracksForm.toggle('toggle_context_new', 'context_new', 'context-form',
|
|
|
|
|
'« Hide form', 'Hide new context form',
|
|
|
|
|
'Create a new context »', 'Add a context');
|
|
|
|
|
});
|
2009-10-13 22:34:37 -04:00
|
|
|
|
2009-10-02 19:45:49 -04:00
|
|
|
$("#list-contexts-active").sortable({handle: '.handle', update: update_order});
|
|
|
|
|
$("#list-contexts-hidden").sortable({handle: '.handle', update: update_order});
|
2009-10-18 18:40:48 -04:00
|
|
|
|
2009-10-02 15:25:20 -04:00
|
|
|
/* Gets called from some AJAX callbacks, too */
|
2009-10-01 22:32:12 -04:00
|
|
|
enable_rich_interaction();
|
2009-09-05 15:21:42 -04:00
|
|
|
});
|