/* news.js

Managment interface for Lupin News Plugin.

*/

function plugin_news(plugin_menu, detail) {
	// Init
	
	var tmp_plugin_menu_item = new UI.MenuItem(plugin_menu, null, {text: detail['title']});
	tmp_plugin_menu_item.bind('click', {plugin: detail}, function(ev) {
		app.busy(true, true);
		plugin_news_view_articles();
	});
}

function plugin_news_view_articles(paging) {
	// List articles
	
	EDIT_VIEW.list_view('/edit/plugins/news/view-articles',
		paging,
		{
			verbose_name: 'article', 
			icon: RESOURCES.ICONS.MANAGE_DOCUMENT, 
			add_record: function(paging) {plugin_news_add_article(paging);},
			select_record: function(record_id, paging) {plugin_news_manage_article(record_id, paging);}
		}
	);
}

function plugin_news_add_article(paging) {
	// Add an article
	
	var breadcrumb_path = new Array();
	
	breadcrumb_path.push(new UI.Breadcrumb('Articles', function(ev) {
		UI.get_application().busy(true, true);
		UI.get_application().get_current_view().destroy();
		plugin_news_view_articles(paging); 
		})
	);
	
	EDIT_VIEW.add_view('/edit/plugins/news/add-article',
		paging,
		{
			verbose_name: 'article',
			icon: RESOURCES.ICONS.ADD,
			breadcrumb_path: breadcrumb_path,
			record_added: function(record_id, paging) {plugin_news_manage_article(record_id, paging);}
		}
	);
}

function plugin_news_manage_article(record_id, paging) {
	// Manage an Article
	
	var breadcrumb_path = new Array();
	breadcrumb_path.push(new UI.Breadcrumb('Articles', function(ev) {
			UI.get_application().busy(true, true);
			UI.get_application().get_current_view().destroy();
			plugin_news_view_articles(paging); 
		})
	); 
	
	EDIT_VIEW.manage_view('/edit/plugins/news/view-article',
		record_id,
		paging,
		{
			verbose_name: 'article',
			title: 'Manage `#TITLE#` article',
			icon: RESOURCES.ICONS.MANAGE_DOCUMENT,
			breadcrumb_path: breadcrumb_path,
	
			pre_ready: function(record_data) {
				var app = UI.get_application();
			
				var view = app.get_current_view();
				view.top_panel.add_class('wui-area-double');
				view.bottom_panel.add_class('wui-area');
			
				// Preview support
				var preview_btn = new UI.Button(view.top_panel, null, {
					text: 'Preview article',
					icon: RESOURCES.ICONS.PREVIEW,
					css_list: ['wui-button-simple']
				});
			
				preview_btn.bind('click', null, function(ev) {
					window.location='/edit/plugins/news/preview-article?record_id=' + record_id;
				});
			
				// Delete support
				delete_btn = new UI.Button(view.bottom_panel, null, {
					text: 'Delete article',
					icon: RESOURCES.ICONS.DELETE,
					css_list: ['wui-button-simple wui-right']
				});
				
				delete_btn.bind('click', null, function(ev) {
					app.confirm('Delete Article?', RESOURCES.ICONS.DELETE,
						'Please confirm you wish to delete the article: <strong>' + record_data['title'] + '</strong>.',
						{}, function (result, data) {
						if (result) { 
							app.busy(true,true);
							$.post('/edit/plugins/news/delete-article', {'record_id': record_id}, function(data) {
								app.notify(data.status_message);
								if (data.status=='OK') {
									view.destroy();
									plugin_news_view_articles(paging);
								}
							}, 'json');
						}		 
						else {
							view.show();
						}
					});
				});
			
				//End 
			},
		
			record_updated: function() {
				// We have to do a complete refresh to show the correct 
				// news information.
				var app = UI.get_application();
				var view = app.get_current_view();
				app.busy(true,true);
				view.destroy();		
				plugin_news_manage_article(record_id, paging);
			}
		}
	);
}
