Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', 'ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.state.*',
'Ext.form.*',
'Ext.ux.CheckColumn'
]);
Ext.onReady(function(){
Ext.grid.dummyData = [];
Ext.grid.dummyDataSavedList = [];
function change(val){
if(val == 'On Going' ){
return '<span style="color:red;">' + val + '</span>';
}else if(val =='Waiting'){
return '<span style="color:blue;">' + val + '</span>';
}else if(val =='Finished'){
return '<span style="color:green;">' + val + '</span>';
}
return val;
}
Ext.define('Company', {
extend: 'Ext.data.Model',
fields: [
{name: 'symbol'},
{name: 'companyname'},
{name: 'exchange', type: 'text'}
]
});
Ext.QuickTips.init();
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
clicksToMoveEditor: 0,
autoCancel: false
});
var getLocalStore = Ext.create('Ext.data.ArrayStore', {
model: 'Company',
data: Ext.grid.dummyData
});
var getLocalStoreSavedList = Ext.create('Ext.data.ArrayStore', {
model: 'Company',
data: Ext.grid.dummyDataSavedList
});
var selModel = Ext.create('Ext.selection.CheckboxModel', {
listeners: {
selectionchange: function(sm, selections) {
}
}
});
var selModelSavedList = Ext.create('Ext.selection.CheckboxModel', {
listeners: {
selectionchange: function(sm, selections) {
}
}
});
var grid4 = Ext.create('Ext.grid.Panel', {
id:'button-grid',
store: getLocalStore,
columns: [
Ext.create('Ext.grid.RowNumberer'),
{
text : 'Symbol',
width : 100,
sortable : true,
dataIndex: 'symbol'
},
{
text : 'Company Name',
width : 150,
sortable : true,
dataIndex: 'companyname'
},
{
text : 'Exchange',
width : 70,
sortable : true,
dataIndex: 'exchange'
},
],
columnLines: true,
selModel: selModel,
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
ui: 'footer',
layout: {
pack: 'center'
}
}, {
xtype: 'toolbar',
items: [
{
xtype: 'textfield',
name: 'searchcompany',
fieldLabel:'Search',
size: '80',
listeners: {
'change': function(){
$("#textfield-1017-inputEl").autocomplete({
source: function (request, response) {
var query=request.term;
$.ajax({
type: "GET",
url: "http://d.yimg.com/autoc.finance.yahoo.com/autoc",
data: {query: query},
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "YAHOO.Finance.SymbolSuggest.ssCallback"
});
YAHOO.Finance.SymbolSuggest.ssCallback = function (data) {
var suggestions = [];
var arrtempFinalSymbol=[];
$.each(data.ResultSet.Result, function(i, val) {
var arrtempSymbol=[];
arrtempSymbol.push(val.symbol);
arrtempSymbol.push(val.name);
arrtempSymbol.push(val.exchDisp);
arrtempFinalSymbol.push(arrtempSymbol);
});
getLocalStore.loadData(arrtempFinalSymbol,false);
}
},
minLength: 1,
select: function (event, ui) {
$("#textfield-1017-inputEl").val(ui.item.value.split(",")[0]);
}
});
}
}
},
{
text:'Add',
id: 'add',
handler: function() {
var rect1 = grid4.getSelectionModel().getSelection() ;
var fs=require('fs');
if(rect1.length == 0)
{
Ext.Msg.alert('Message', '<font color="red">Please select atleast one record.</font>');
}else
{
var async = require('async');
var fs = require('fs');
async.parallel(
{
data1 : function(callback){
if (fs.existsSync('yahoo.csv')) {
fs.readFile('yahoo.csv','utf-8', function(err, data){
callback(err, data);
});
}else
{
fs.readdir('./', function(err, files){
callback(err,'0');
});
}
}
}, function(err, result)
{
var rect = grid4.getSelectionModel().getSelection() ;
if(err) console.log(err);
if (fs.existsSync('yahoo.csv'))
{
var arrRow = new Array();
var data = result['data1'];
if(data != "" || data != null)
{
arrRow = data.split('\n');
var arrFinalList = new Array();
for(var i=0;i<rect.length;i++)
{
var flag = 0;
for(var j=0 ; j<arrRow.length-1;j++)
{
if(arrRow[j].split(',')[0].toString() == rect[i].get('symbol'))
{
flag = 1;
break;
}
}
if(flag == 0)
{
fs.appendFile('yahoo.csv', rect[i].get('symbol')+','+rect[i].get('companyname')+','+rect[i].get('exchange')+'\n', function(err){
if(err) console.log(err);
});
}
}
viewsavedList();
}
}else
{
for(var i=0;i<rect.length;i++)
{
fs.appendFile('yahoo.csv', rect[i].get('symbol')+','+rect[i].get('companyname')+','+rect[i].get('exchange')+'\n', function(err){
if(err) console.log(err);
});
}
viewsavedList();
}
} );
}
}
}]
}],
width: 250,
height: 340,
frame: true,
title: 'Yahoo Symbol LookUp'
});
$("#gridcolumn-1019-titleEl").hide();
var grid5 = Ext.create('Ext.grid.Panel', {
id:'button-grid2',
store: getLocalStoreSavedList,
columns: [
Ext.create('Ext.grid.RowNumberer'),
{
text : 'Symbol',
width : 100,
sortable : true,
dataIndex: 'symbol'
},
{
text : 'Company Name',
width : 150,
sortable : true,
dataIndex: 'companyname'
},
{
text : 'Exchange',
width : 70,
sortable : true,
dataIndex: 'exchange',
margins : '0 2 0 0'
},
],
columnLines: true,
selModel: selModelSavedList,
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
ui: 'footer',
layout: {
pack: 'center'
}
}, {
xtype: 'toolbar',
items: [
{
text:'Refresh',
id : 'show',
handler: function() {
var fs = require('fs');
if (fs.existsSync('yahoo.csv'))
{
viewsavedList();
}else
{
Ext.Msg.alert('Message','<font color="red">List is empty. Please add symbols to view list.</font">');
}
}
},
{
text:'Remove',
id : 'remove',
handler: function() {
var rect = grid5.getSelectionModel().getSelection();
if(rect.length == 0)
{
Ext.Msg.alert('Message', '<font color="red">Please select atleast one record.</font>');
}else
{
console.log('\nsym : '+rect[0].get('symbol'));
if(rect[0].get('symbol') != "")
{
var arrFileData = new Array();
var async = require('async');
var fs = require('fs');
async.parallel(
{
data1 : function(callback){
if (fs.existsSync('yahoo.csv')) {
fs.readFile('yahoo.csv','utf-8', function(err, data){
callback(err, data);
});
}else
{
fs.readdir('./', function(err, files){
callback(err,'0');
});
}
}
}, function(err, result)
{
if(err) console.log(err);
if (fs.existsSync('yahoo.csv'))
{
var arrRow = new Array();
var arrFileData = new Array();
var data = result['data1'];
if(data != "" || data != null)
{
arrRow = data.split('\n');
for(var i=0 ; i<arrRow.length;i++)
{
var tempFlag = -1;
var tempArr = arrRow[i].split(',');
if(tempArr.length > 2)
{
for(var j=0;j<rect.length;j++)
{
if(rect[j].get('symbol') == tempArr[0])
{
console.log('\n in match i='+i);
tempFlag = i;
break;
}
}
if(tempFlag != i)
{
arrFileData.push(tempArr);
}
}
}
if(arrFileData.length != 0)
{
getLocalStoreSavedList.loadData(arrFileData,false);
fs.writeFile('yahoo.csv', arrFileData[0]+'\n',function(err){
if(err) console.log(err);
for(var i=1;i <arrFileData.length; i++)
{
fs.appendFile('yahoo.csv', arrFileData[i]+'\n', function(err){
if(err) console.log(err);
});
}
});
}else
{
fs.writeFile('yahoo.csv', '',function(err){
if(err) console.log(err);
});
var arrtmp = [];
getLocalStoreSavedList.loadData(arrtmp,false);
}
}
}
} );
}
}
}
}]
}],
width: 250,
height: 340,
frame: true,
title: 'Saved Symbols List',
margins : '0 0 0 3'
});
function viewsavedList()
{
var async = require('async');
var fs = require('fs');
async.parallel(
{
data1 : function(callback){
if (fs.existsSync('yahoo.csv')) {
fs.readFile('yahoo.csv','utf-8', function(err, data){
callback(err, data);
});
}else
{
fs.readdir('./', function(err, files){
callback(err,'0');
});
}
}
}, function(err, result)
{
if(err) console.log(err);
if (fs.existsSync('yahoo.csv'))
{
var arrRow = new Array();
var arrFileData = new Array();
var data = result['data1'];
if(data != "" || data != null)
{
arrRow = data.split('\n');
if(arrRow.length != 0)
{
for(var i=0 ; i<arrRow.length-1;i++)
{
var tempArr = arrRow[i].split(',');
if(tempArr.length > 2)
arrFileData.push(tempArr);
}
if(arrFileData.length != 0)
{
getLocalStoreSavedList.loadData(arrFileData,false);
}else
{
}
}
}
}
} );
}
var displayPanel = Ext.create('Ext.Panel', {
width : 690,
height : 380,
layout : {
type: 'hbox',
align: 'stretch',
padding: 5
},
renderTo : 'panel',
defaults : { flex : 1 },
items : [
grid4,
grid5
]
});
$("#gridcolumn-1028-titleEl").hide();
$("#gridcolumn-1029-titleEl").hide();
$("#textfield-1017-labelCell").attr("width","44px");
$("#textfield-1017-labelCell").css("width","44px");
$("#textfield-1017-labelEl").css("width","44px");
viewsavedList();
});