/** * stepの数と、実際の表示するステップ番号とは違いがあります!! * 途中でステップが増える処理があるため。 * resmapを参照! */ var DEFAULT_DOCID = new Array( 'spreadsheet:0At7swXwQqAu7dER6NmhuVHY2RHQ3SzZCY1J5Z2p5aVE' ,'document:1CesLWHISbA9yEkfEGFLq03UYTZyiWjT-xK-3YVgrKuo' ); var step = 0; var curRow = null; var resmap = { 1: '1', 2: '2', 3: '3', 4: '3-1', 5: '4', 6: '5' }; var useMakeDocsAccount = false; var prevDisabled = false; var nextDisabled = false; var hasToken = false; var hasDocs = false; var gid = ''; var docId = ''; var docTitle = ''; var originalLink = ''; var defConfig = { newFlg: false }; var serviceConfig = defConfig; Ext.onReady(function(){ setupCommon(); var args = location.search; if (args.length > 0) { // get initial data var params = parseParam(args); // authsubからの戻り if (params.auth_return) { if (params.bindcld) { if (window.opener && !window.opener.closed){ var cldlocurl = window.location.href.replace("&bindcld=true",""); if (window.opener.location == null || window.opener.location.href == null) { window.opener.postMessage(cldlocurl, '*'); } else { window.opener.location.href = cldlocurl; } window.close(); return; } } if (params.error) { gotoStep(1); } else { gid = params.g; step = 2; gotoStep(3); } // 復元 } else { gid = params.g; docId = params.s; if (params.o) var opt = eval('(' + decodeURIComponent(params.o) + ')'); if (opt) { serviceConfig = opt; } if (DEFAULT_DOCID.indexOf(docId) > -1) { gotoStep(1); } else { // get doc info jQuery.getJSON('./json/', {'s' : docId.substring(docId.indexOf(':')+1)}, function(json) { if (json.docs != '') { if (json.docs == 'notfound') { // 設定済ドキュメントが削除されていた場合 gotoStep(1); hasDocs = true; } else { docTitle = json.docs.title; originalLink = json.docs.link; step = 5; gotoStep(6); } } else { // jsonが空だった場合、旧認証のためOAuth2.0で再認証 step = 1; gotoStep(2); } }); } } } else { gotoStep(1); } jQuery('#btn-prev').click(function(e) { if (prevDisabled) return; nextDisabled = false; if (step == 1) { location.href = '/main/'; } else if (step == 3) { jQuery.get('./hastoken', function(data, status) { if (data == 'True') { hasToken = true; } gotoStep(step - 1); }); } else if (step == 5) { if (useMakeDocsAccount == false) step--; gotoStep(step-1); } else { gotoStep(step-1); } }); jQuery('#btn-next').click(function(e) { if (nextDisabled) return; // Token作成済みか? if (step == 1 && !(DEFAULT_DOCID.indexOf(docId) > -1)) { jQuery.get('./hastoken', function(data, status) { if (data == 'True') { hasToken = true; } gotoStep(step+1); }); return; // ドキュメント有無選択 } else if (step == 3) { var y = document.getElementById('yes_doc'); var n = document.getElementById('no_doc'); if (y.checked == false && n.checked == false) { msgBox(i18n.t("docs.contents.error.select-settings"), i18n.t("docs.contents.error.select-settings-msg")); n.focus(); return; } // ドキュメントにアクセス if (n.checked) { useMakeDocsAccount = true; hasDocs = false; // 違うロード処理 if (!document.getElementById('step3-1')) jQuery('
').css('width', '200px').insertAfter(jQuery('#menu ul li:eq(2)')); } else { useMakeDocsAccount = false; hasDocs = true; if (document.getElementById('step3-1')) jQuery('#step3-1').remove(); step++; } } else if (step == 5) { if (curRow == null) { msgBox(i18n.t("alert.error"), i18n.t("docs.contents.error.select-docs")); return; } docId = curRow.data.id; docTitle = curRow.data.title; originalLink = curRow.data.link; if (originalLink.indexOf('key=') == -1) serviceConfig.newFlg = true; } else if (step == 6) { if (checkDouble()) { msgBox(i18n.t("alert.request-error"), i18n.t("alert.request-error-msg")); return false; }; loadTag('docs', gid, docId, '', jQuery.toJSON(serviceConfig)); return; } gotoStep(step+1); }); jQuery(window).bind('resize', resizeHandler); }); function gotoStep(nextstep) { if (nextstep == step) return; var fn = (nextstep > step) ? nextHandler:prevHandler; var nm = resmap[nextstep]; if (nextstep == 2 && hasToken) nm = '2-1'; var tm = new Date().getTime(); jQuery('#contents_body').load('/_modules/html/docs/step' + nm + '.html?tm=' + tm, fn); } function nextHandler(text, status) { if (status == 'success') { step++; setStepCss(); onLoadComplete(); } } function prevHandler(text, status) { if (status == 'success') { step--; setStepCss(); onLoadComplete(); } } function onLoadComplete() { // Googleアカウント if (step == 2) { manualClick('#btn-privacy-policy', 'http://www.digitalstage.jp/go/sync5/privacy.html', 'http://www.digitalstage.jp/go/sync5/privacy.html'); manualClick('#btn-google-acoount-howto', 'http://www.digitalstage.jp/go/sync5/get_google_account_howto.html', 'http://www.digitalstage.jp/go/sync5/get_google_account_howto.html'); jQuery('#btn-reconnect').click(function(e){ var url = authSubUrl.replace(/&/g, '&'); var cbres = getCallBackURL(); if (cbres.callback.length>0) { var oauthWindow = window.open(url, 'googleOAuthWindow', '_blank, width=900, height=600, location=no, menubar=no, scrollbars=yes, resizable=yes'); }else{ location.href = url; } }); if (hasToken == false) { nextDisabled = true; } /* if (hasToken == false) { nextDisabled = true; jQuery('#iframe-pointer').append(''); jQuery('#refresh_auth_page').click(function(e) { var subf = document.getElementById('auth_sub_frame'); subf.src = '/docs/gauth'; }); } else { jQuery('#btn-reconnect').click(function(e){ hasToken = false; var tm = new Date().getTime(); jQuery('#contents_body').load('/_modules/html/docs/step2.html?tm=' + tm, function(text, status) { if (status == 'success') { onLoadComplete(); } }); }); }*/ } else if (step == 3) { manualClick('#btn-docs-howto', 'http://www.digitalstage.jp/go/sync5/docs_howto.html', 'http://www.digitalstage.jp/go/sync5/docs_howto.html'); if (hasDocs) { document.getElementById('yes_doc').checked = true; } else { document.getElementById('no_doc').checked = true; } } else if (step == 5) { manualClick('.btn-docs-howto', 'http://www.digitalstage.jp/go/sync5/docs_howto.html', 'http://www.digitalstage.jp/go/sync5/docs_howto.html'); renderDocList(); } else if (step == 6) { jQuery('#doc_name').append(docTitle); document.getElementById('original_link').href = "javascript:getUrl('" + originalLink + "')"; } loaded(); } function setStepCss() { var nm = resmap[step]; jQuery('#sub_title').css('background-image', 'url(/_modules/images/docs/subtitle0' + nm + '.png)'); for (var i=1; i<=7; i++) { nm = resmap[i]; var src = '/_modules/images/docs/step0' + nm; if (i == step) { src += '_on'; } if (document.getElementById('step' + nm)) jQuery('#step' + nm).css('background-image', 'url(' + src + '.png)'); } /* sumit button */ btn = document.getElementById('btn-next'); if (step == 6) { btn.className = 'btn-submit'; } else if (step == 2 && hasToken == false) { btn.className = 'btn-next-disabled'; } else { btn.className = 'btn-next'; } // resize resizeHandler(); } /** * Docリスト表示 */ function renderDocList() { store = new Ext.data.JsonStore ({ url: './json/', root: 'docs', id: 'id', fields: ['id', 'author', 'title', 'link', {name:'pubDate', type:'date'}, 'summary', 'category'], remoteSort: false }); var cm = new Ext.grid.ColumnModel([ { header: i18n.t("docs.contents.step4.header-name"), dataIndex: 'title', align: 'left', width: 230, renderer: formatTitle },{ header: i18n.t("docs.contents.step4.header-lastupdate"), dataIndex: 'pubDate', width: 120, renderer: formatDate },{ header: i18n.t("docs.contents.step4.header-link"), dataIndex: 'link', align: 'left', width: 240, renderer: formatLink } ]); cm.defaultSortable = true; // create the Grid var grid = new Ext.grid.GridPanel({ el:'main-area', width:600, height:350, title:'', store: store, cm: cm, trackMouseOver:false, sm: new Ext.grid.RowSelectionModel({ singleSelect: true }), loadMask: {msg: i18n.t("common.loading")}, viewConfig: { forceFit:true, enableRowBody:true, showPreview:true, getRowClass : function(record, rowIndex, p, store){ if(this.showPreview){ return 'x-grid3-row-expanded'; } return 'x-grid3-row-collapsed'; } }, bbar: [ '->', {text: i18n.t("docs.contents.step4.update-list"), handler: function() { store.reload(); }} ] }); grid.on('rowclick', function(g, rowIndex, e) { curRow = g.getStore().getAt(rowIndex); }); grid.render(); store.load(); } function formatDate(date) { if (!date) { return ''; } var now = new Date(); var d = now.clearTime(true); var notime = date.clearTime(true).getTime(); if (notime == d.getTime()) { return i18n.t("docs.contents.setp4.today") + date.dateFormat('g:i a'); } d = d.add('d', -6); if (d.getTime() <= notime) { return date.dateFormat('D g:i a'); } return date.dateFormat('n/j g:i a'); } function formatTitle(value, p, record) { var cat = record.data.category; var ico = ''; if (cat == 'document') { ico = ''; } else if (cat == 'spreadsheet') { ico = ''; } else if (cat == 'presentation') { ico = ''; } else { ico = cat; } return String.format( '