рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдореИрдВ рдлреЛрдирдЧреИрдк рдкрд░ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдирддреАрдЬрддрди, рд╣рдореЗрдВ RESTfull рд╕рд░реНрд╡рд░, рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ PaS рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрд▓рдЧ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдлреЛрдирдЧреИрдк рдореЗрдВ рд▓рд┐рдкрдЯрд╛ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╕рд┐рдВрдЧрд▓ рдкреЗрдЬ рдРрдк), рд╕рд░реНрд╡рд░ (рд╕реНрд╡реИрдЧрд░-рдиреЛрдб-рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдиреЛрдб-рдУрдЖрд░рдПрдо 2 рдХреЗ рд╕рд╛рде рдиреЛрдбреНрдЬ), рдФрд░ рдпрд╣ рд╕рдм рдУрдкрдирд╣реИрдлреНрдЯреНрд╕ рдПрдПрдПрд╕ рдкрд░ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ (рднрд╛рдЧ 2 - рд╕рд░реНрд╡рд░ рдФрд░ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ)рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП:
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреЗрдЬрд╕реНрд░реЛрдд рдХреЛрдбрдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рддреБрд░рдВрдд рд╣реЗрдмреНрд░рд╛рдлрд╝реЗрдХреНрдЯ рд╕реЗ рдЧрд┐рд░ рдЬрд╛рдПрдЧреАред рдпрд╣ рдПрдХ рдЯреНрд░рд╛рдпрд▓ рдЕрдХрд╛рдЙрдВрдЯ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рджреЛ рд╕реНрд▓реЙрдЯ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред
рдореИрдВ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЖрдк рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд▓реЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдЧреНрд░рд╛рд╣рдХред рдореИрдВрдиреЗ рдЯреНрд╡рд┐рдЯрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ (рдкреВрд░реНрд╡), рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрднреА рддрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ - рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдмрд╛рдд рдЬреЗрдПрд╕ рд▓реЙрдЬрд┐рдХ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреБрдж рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЗрдПрд╕, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЦреБрдж рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рдЪреВрдХрддрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлреЛрди рдкрд░ рдлрд╛рдЗрд▓реЗрдВ рдЬрд▓реНрджреА рд╕реЗ рднрд░реА рдЬрд╛рдПрдВрдЧреА, рдФрд░ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЖрд╡реЗрджрди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрд░рд┐рдиреЗрдЯ рдХреЛ рдЪреБрдирд╛ред
рдЕрдм рджреЛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВ: рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдФрд░ рд╕рдореНрдореЗрд▓рдиред
рдЕрдХреНрд╖рдо рдСрдЯреЛ рдкреНрд░рд╛рд░рдВрдн:
this.startWithParent = false;
рдФрд░ рдореИрдВ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред
require( [ 'css!bootstrap_css', 'bootstrap', 'app/modules/conferences', 'app/modules/auth', ], function () { app.start(); } );
MyConference.addInitializer(function(options){ mainLayout = new MainLayout; MyConference.mainView.show(mainLayout); var headerView = new HeaderView; headerView.MyConference = MyConference; mainLayout.header.show(headerView); MyConference.Conferences.start(); MyConference.Auth.start(); });
рдкреНрд░рд╛рдорд╛рдгрд┐рдХ - рдкрдВрдЬреАрдХрд░рдг / рдкреНрд░рд╛рдзрд┐рдХрд░рдгред рдореИрдВ рд╕рд╛рдорд╛рдЬрд┐рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рд╣рдореЗрд╢рд╛ рдЦреБрдж рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ; рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛ред Google, рд▓рд┐рдВрдХреНрдбрдЗрди, рдлреЗрд╕рдмреБрдХ, рдЯреНрд╡рд┐рдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд, рдЖрдк рдмрд╕ рдореЗрд░рд╛ рдХреЛрдб рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдорд╛рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдЬрд┐рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ Api рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП facebook:
var afterInit = function(){ var sendAccessToken = function(response){ $.post( cfg.baseUrl + 'auth.json/facebook', {FacebookKEY: response.authResponse.accessToken}, function(data, message, xhr){ process_social_resporce(model, data, xhr); }, "text" ); } FB.getLoginStatus(function(response) { if(response.status == "not_authorized" || response.status == "unknown"){ FB.login(function(response, a) { if (response.authResponse) { sendAccessToken(response); } else { console.log(response, a) } }, {scope:'email'}); }else{ sendAccessToken(response); } }); } window.fbAsyncInit = function() { FB.init({ appId : cfg.facebookAppId,
рдкреЛрд╕реНрдЯ / рдкрд╕рдВрдж рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЗрд╕ рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдпрд╣ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЬреЗрдПрд╕ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрддреА рд╣реИред
рдЯреНрд╡рд┐рдЯрд░ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреАред рдЗрд╕рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдПрдХ рд╡рд┐рдВрдбреЛ рдЦреБрд▓рддреА рд╣реИ, рд╡рд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдореВрд▓ рд╡рд┐рдВрдбреЛ рдмрдЪреНрдЪреЗ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрдврд╝рддреА рд╣реИред рдпрд╣ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
var childWin = window.open(cfg.baseUrl + 'auth.json/twitter/'+Storage.get('API_KEY'), 'Twitter Auth', "height=640,width=480"); childWin.onunload = function(){ var check = function(){ if(childWin.document){ var body = childWin.document.getElementsByTagName("body")[0]; if(!model.isNew() || body.textContent.length > 0){ process_social_resporce(model, body.textContent); childWin.close(); }else{ setTimeout(check, 100); } }else{ setTimeout(check, 100); } } setTimeout(check, 100); }
рдЕрдм рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ - рдХреЙрдиреНрдлреНрд░реЗрдВрд╕ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдореИрдВ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВред
var ConferencesController = Marionette.Controller.extend(new function(){ return { main: function(){ MyConference.mainView.currentView.header.currentView.setHeader('Conferences'); var conferencesCollection = new ConferencesCollection; var spinnerView = new SpinnerView(); spinnerView.render(); conferencesCollection.fetch({ error: function(){ console.log('error'); }, success: function(collection){ var mainView = new MainView; mainView.collection = conferencesCollection; MyConference.mainView.currentView.content.show(mainView); spinnerView.remove(); } }) }, conference: function(id){ var conferenceModel = new ConferenceModel; conferenceModel.set('id', id); conferenceModel.fetch({ error: function(){ var conferenceNotFoundView = new ConferenceNotFoundView; MyConference.mainView.currentView.content.show(conferenceNotFoundView); }, success: function(conference){ var conferenceFullView = new ConferenceFullView; conferenceFullView.model = conference; MyConference.mainView.currentView.content.show(conferenceFullView); } }); }, streams: function(conference_id){ ShowStreams( conference_id, function(){ ShowStream(streams.at(0).get('id')); } ); }, stream: function(id){ ShowStream(id); } } }); var MainRouter = Backbone.Marionette.AppRouter.extend({ appRoutes: { "conference/:id": "conference", "conferences": "main", "": "main", "streams/:conference_id": "streams", "stream/:id": "stream" }, controller: new ConferencesController });
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рдмреЗрдХрди рдореЙрдбрд▓ / рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреГрд╢реНрдп рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреА рд╕реВрдЪреА рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдЧреНрд░рд╣ рджреГрд╢реНрдп рд╣реИред рдореИрдВ рд╕рдореНрдореЗрд▓рди рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рд░реБрдХреВрдВрдЧрд╛ред OpenStreetMap рдФрд░ GoogleMaps рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреИрдЯрд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ Google рдХреЛ рдЙрдирдХреЗ рдЪрд┐рддреНрд░реЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдкрд╕рдВрдж рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд╣рд╛рдБ рдПрдХ рддрд╕реНрд╡реАрд░ / рдкреАрдбреАрдПрдл рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред рдФрд░ рд╕рдмрд╕реЗ рдКрдкрд░ рджрд╛рдИрдВ рдУрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕реВрдЪреА рдХрд╛ рд▓рд┐рдВрдХ рд╣реИред
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рд╣реИ, рддреЛ рд╡рд╣ рддреАрди рдмрдЯрди рджреЗрдЦрддрд╛ рд╣реИ, "рдЧреЛ" рд╕рдореНрдореЗрд▓рди рдореЗрдВ, рдкрд╕рдВрджреАрджрд╛ рдФрд░ рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рдЖрдЗрдЯрдо рджреГрд╢реНрдп рд╕реЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рд▓реЗрдЖрдЙрдЯ рд╕реЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЙрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╣рд╛рдВ рдЗрди рддреАрди рдмрдЯрди рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИред
regions: { decision: "#decision" },
рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ рдпрд╣ рдпрд╛ рд╡рд╣ рджреГрд╢реНрдп рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВред
if(MyConference.Auth.getUser().isNew()){ var view = new GuestDecisionView; }else{ var desisionModel = new DecisionModel(view.model.get('decision')); var view = new LoggedInDecisionView({model: desisionModel}); view.parent = this; } this.decision.show(view);
рдпрд╣ рдХреЗрд╡рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдлреЛрди рдкрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ "рдХреЙрд░реНрдбреЛрд╡рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдРрдб рдПрдВрдбреНрд░реЙрдЗрдб" рдЪрд▓рд╛рдПрдВ
cordova platform add android
рддреЛ
cordova build android
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдпрд╛
cordova run android
рдЕрдкрдиреЗ рдлреЛрди рдкрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп Google play, Apple App Store рдФрд░ Windows Store рдкрд░ рдРрдкреНрд╕ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реА рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡реЗрдм рд╣реИ, рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдирд╣реАрдВ, рд╡рд┐рдХрд╛рд╕, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрдЯреЛрд░ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд▓реЗрдЦ рдорджрджрдЧрд╛рд░ рд▓рдЧреЗрдЧрд╛ред рдореИрдВрдиреЗ рдЙрд╕реЗ рдмрд╣реБрдд рдЙрдХрд╕рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рд╕рднреА рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЖрд▓реЛрдЪрдирд╛, рдЗрдЪреНрдЫрд╛рдУрдВ, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдмрд╛рд╣рд░ рдЖ рдЧрдИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛ рд▓реЗрдЦреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджрд┐рдпрд╛ - рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдСрд░рдо рдСрдЯреЛ-рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдФрд░ рдореЗрдореЗрдХреИрдЪреНрдб рдХреЗ рд╕рд╛рде рдиреЛрдбрдЬ рдкрд░ рдПрдХ рд░рд┐рд╕реНрдЯрдлреБрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рдФрд░ рдХреИрд╕реЗ рдореИрдВрдиреЗ рдпрд╣ рд╕рдм RedHat -
Pahahift рд╕реЗ
PaaS рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ред