فهرست منبع

wiki will try and get spanish version of page then fall back to english if it is not there

Henry Oswald 12 سال پیش
والد
کامیت
aeb956c8a4
1فایلهای تغییر یافته به همراه35 افزوده شده و 14 حذف شده
  1. 35 14
      services/web/app/coffee/Features/Wiki/WikiController.coffee

+ 35 - 14
services/web/app/coffee/Features/Wiki/WikiController.coffee

@@ -2,30 +2,37 @@ request = require("request")
 settings = require("settings-sharelatex")
 logger = require("logger-sharelatex")
 ErrorController = require "../Errors/ErrorController"
+_ = require("underscore")
+
+other_lngs = ["es"]
 
 module.exports = WikiController = 
 	getPage: (req, res, next) ->
+		
 		page = req.url.replace(/^\/learn/, "").replace(/^\//, "")
 		if page == ""
 			page = "Main_Page"
 
 		logger.log page: page, "getting page from wiki"
-		
+		if _.include(other_lngs, req.lng)
+			lngPage = "#{page}_#{req.lng}"
+		else
+			lngPage = page
+
 		WikiController._getPageContent "Contents", (error, contents) ->
 			return next(error) if error?
-			WikiController._getPageContent page, (error, page) ->
+			WikiController._getPageContent lngPage, (error, pageData) ->
 				return next(error) if error?
-				if page.title == "Main Page"
-					title = "Documentation"
+				if pageData.content?.length > 280
+					WikiController._renderPage(pageData, contents, res)
 				else
-					title = page.title
-					
-				res.render "wiki/page", {
-					page: page
-					contents: contents
-					title: title
-				}
-		
+					WikiController._getPageContent page, (error, pageData) ->
+						return next(error) if error?
+						WikiController._renderPage(pageData, contents, res)
+
+
+				
+
 	_getPageContent: (page, callback = (error, data = { content: "", title: "" }) ->) ->
 		request {
 			url: "#{settings.apis.wiki.url}/learn-scripts/api.php"
@@ -40,7 +47,21 @@ module.exports = WikiController =
 				data = JSON.parse(data)
 			catch err
 				logger.err err:err, data:data, "error parsing data from wiki"
-			callback null, {
+			result = 
 				content: data?.parse?.text?['*']
 				title: data?.parse?.title
-			}
+
+			callback null, result
+
+
+	_renderPage: (page, contents, res)->
+		if page.title == "Main Page"
+			title = "Documentation"
+		else
+			title = page.title
+			
+		res.render "wiki/page", {
+			page: page
+			contents: contents
+			title: title
+		}