src/cm/media/js/client/f_printDialog.js
author reno
Thu, 26 Nov 2009 12:03:53 +0100
changeset 11 7b8167c4aa6f
parent 0 40c8f766c9b8
child 190 faf3a87a7d73
permissions -rw-r--r--
simplified style management. checked gray and notelike styles self sufficiency.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
//http://jqueryui.com/demos/dialog/modal-form.html
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
// TODO ? : get from the server 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
// extension : label 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
gFormats = [{'actions':['print'], 'extension':'html', 'label': gettext('print from the browser')},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
            {'actions':['export'], 'extension':'html', 'label': gettext('download html file (.html)')},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
            {'actions':['print', 'export'], 'extension':'markdown', 'label': gettext('download markdown file (.mkd)')},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
            {'actions':['print', 'export'], 'extension':'pdf', 'label': gettext('download portable object format file (.pdf)')},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
            {'actions':['print', 'export'], 'extension':'tex', 'label': gettext('download latex file (.tex)')},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
            {'actions':['print', 'export'], 'extension':'odt', 'label': gettext('download open document file (.odt)')}] ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
gActions = {'print':{'dialogTitle':gettext('Print text'), 'defaultMethod':'pdf', 'defaultWithColors':"no", 'defaultWhichComments':'all'}, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
			'export':{'dialogTitle':gettext('Export text'), 'defaultMethod':'pdf', 'defaultWithColors':"no", 'defaultWhichComments':'all'}} ; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
gCurrentAction = null ; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
_populateMethod = function(withColors) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
	var val = $("#p_method").val();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
	$("#p_method").html("");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
	for (var i = 0, ilen = gFormats.length ; i < ilen ; i++) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
		var actions = gFormats[i]['actions'] ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
		for (var j = 0, jlen = gFormats.length ; j < jlen ; j++) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
			if (actions[j] == gCurrentAction)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
				$("<option value='" + gFormats[i]['extension'] + "'>" + gFormats[i]['label'] + "</option>").appendTo("#p_method");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
	}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
	if (val)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
		$("#p_method").val(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
	else
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
		$("#p_method").val(gActions[gCurrentAction]['defaultMethod']);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
_populateMarkersColorsChoice = function(withColors) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
	var val = $("#p_color").val();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
	$("#p_color").html("");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
	$("<option value='0'>" + gettext("using markers only, no background colors") + "</option>").appendTo("#p_color");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
	$("<option value='1'>" + gettext("using markers and background colors") + "</option>").appendTo("#p_color");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
	if (val)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
		$("#p_color").val(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
	else 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
		$("#p_color").val(gActions[gCurrentAction]['defaultWithColors']);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
_populateWhichComments = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
	var val = $("#p_comments").val();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
	$("#p_comments").html("");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
	var all = interpolate(gettext("all (%(nb_comments)s)"), {'nb_comments':frames['text_view_comments'].gDb.getCommentsNb(true)}, true) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
	var currents = interpolate(gettext("current filtered ones (%(nb_comments)s)"), {'nb_comments':frames['text_view_comments'].gDb.getCommentsNb(false)}, true) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
	$("<option value='all' >" + all +"</option>").appendTo($("#p_comments")) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
	$("<option value='none' >" + gettext("none (0)") + "</option>").appendTo($("#p_comments")) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
	$("<option value='filtered' >" + currents + "</option>").appendTo($("#p_comments")) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
	if (val)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
		$("#p_comments").val(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
	else 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
		$("#p_comments").val(gActions[gCurrentAction]['defaultWhichComments']);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
_manageMarkersColorsChoice = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
	var method = $("#p_method").val();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
	var which = $("#p_comments").val();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
	var disableMarkersColorsChoice ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
	if (gCurrentAction == 'print') 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
		disableMarkersColorsChoice = ((which == 'none') || (method == 'markdown') || (method == 'html')) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
	if (gCurrentAction == 'export') 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
		disableMarkersColorsChoice = ((which == 'none') || (method == 'markdown')) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
	if (disableMarkersColorsChoice)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
		$("#p_color").val('no');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
	$("#p_color").attr("disabled", disableMarkersColorsChoice);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
_initPrintDialog = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
	$('#p_comments').add($('#p_method')).change(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
		_manageMarkersColorsChoice() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
		_prepareOpenInNewWindow() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
	}) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
	var buttons = {} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
	buttons[gettext('Go !')] = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
		var whichComments = $("#p_comments").val() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
		var withColor = $("#p_color").val() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
		var format = $("#p_method").val() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
		var download = (gCurrentAction == "export") ? "1" : (format == "html") ? "0" : "1" ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
		var targetUrl = $("#print_export_form").attr('target_action').replace(/FoRmAt/,format).replace(/DoWnLoAd/, download).replace(/WhIcHCoMmEnT/, whichComments).replace(/WiThCoLoR/, withColor) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
		$("#print_export_form").attr('action', targetUrl) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
		document['print_export_form'].submit();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
		$(this).dialog('close');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
	} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
	buttons[gettext('Cancel')] = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
		$(this).dialog('close');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
	} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
	$("#dialog_print_export").dialog({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
		bgiframe: true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
		autoOpen: false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
		width: 450,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
/*		height: 300,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
		autoResize: false,*/		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
		modal: true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
		buttons: buttons,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
		close: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
			; // empty
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
	});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
openPrintDialog = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
	_openPrintExportDialog('print') ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
openExportDialog = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
	_openPrintExportDialog('export') ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
_prepareOpenInNewWindow = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
	var method = $("#p_method").val();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
	if ((method == "html") && (gCurrentAction == 'print'))
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
		$("#print_export_form").attr("target", "_blank") ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
	else
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
		$("#print_export_form").removeAttr("target") ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
_openPrintExportDialog = function(action) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
	gCurrentAction = action ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
	$("#ui-dialog-title-dialog_print_export").html(gActions[gCurrentAction]['dialogTitle']) ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
	$("#print_export_action").val(action) ; // TODO check this still usefull
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
	_populateWhichComments() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
	_populateMarkersColorsChoice() ;	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
	_populateMethod() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
	_manageMarkersColorsChoice() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
	_prepareOpenInNewWindow() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
	$('#dialog_print_export').dialog('open');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
/*		
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
			tips.text(t).effect("highlight",{},1500);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
*/