| @@ -1,6 +1,31 @@ | |||||
| class SettingsController < ApplicationController | class SettingsController < ApplicationController | ||||
| def show | def show | ||||
| @old_projects_url = nil | |||||
| @old_projects_url = nil | |||||
| @old_projects_url = "https://www.trustie.net/users/#{current_user.try(:login)}/projects" if User.current.logged? | @old_projects_url = "https://www.trustie.net/users/#{current_user.try(:login)}/projects" if User.current.logged? | ||||
| @add = Site.add.select(:id, :name, :url, :key) | |||||
| @personal = | |||||
| if User.current.logged? | |||||
| arr =[] | |||||
| Site.personal.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site| | |||||
| hash = {} | |||||
| site.each {|k, v| | |||||
| hash.merge!("#{k}": v.to_s.include?("current_user") ? v.split('current_user').join(current_user&.login) : v) | |||||
| } | |||||
| arr << hash | |||||
| end | |||||
| else | |||||
| [] | |||||
| end | |||||
| @common = [] | |||||
| Site.common.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site| | |||||
| next if site["url"].to_s.include?("current_user") && !User.current.logged? | |||||
| hash = {} | |||||
| site.each {|k, v| | |||||
| hash.merge!("#{k}": v.to_s.include?("current_user") ? v.split('current_user').join(current_user&.login) : v) | |||||
| } | |||||
| @common << hash | |||||
| end | |||||
| end | end | ||||
| end | end | ||||
| @@ -0,0 +1,23 @@ | |||||
| # == Schema Information | |||||
| # | |||||
| # Table name: sites | |||||
| # | |||||
| # id :integer not null, primary key | |||||
| # name :string(255) | |||||
| # url :string(255) | |||||
| # key :string(255) | |||||
| # site_type :integer | |||||
| # created_at :datetime not null | |||||
| # updated_at :datetime not null | |||||
| # | |||||
| class Site < ApplicationRecord | |||||
| # add: 添加类链接 | |||||
| # personal: 个人名下类链接, | |||||
| # common: 普通链接 | |||||
| enum site_type: { add: 0, personal: 1, common: 2 } | |||||
| def self.set_default | |||||
| end | |||||
| end | |||||
| @@ -48,4 +48,15 @@ json.setting do | |||||
| json.old_projects_url @old_projects_url | json.old_projects_url @old_projects_url | ||||
| json.add do | |||||
| json.array! @add, :name, :url, :key | |||||
| end | |||||
| json.personal do | |||||
| json.array! @personal | |||||
| end | |||||
| json.common do | |||||
| json.array! @common | |||||
| end | |||||
| end | end | ||||
| @@ -23,7 +23,6 @@ Rails.application.routes.draw do | |||||
| resources :edu_settings | resources :edu_settings | ||||
| resources :edu_settings | |||||
| scope '/api' do | scope '/api' do | ||||
| namespace :ci do | namespace :ci do | ||||
| resources :languages, only: [:index, :show] do | resources :languages, only: [:index, :show] do | ||||
| @@ -379,7 +378,7 @@ Rails.application.routes.draw do | |||||
| end | end | ||||
| end | end | ||||
| resource :repositories, path: '/', only: [:show, :create, :edit] do | |||||
| resource :repositories, path: '/', only: [:show, :create, :edit] do | |||||
| member do | member do | ||||
| get :files | get :files | ||||
| get :detail | get :detail | ||||
| @@ -0,0 +1,12 @@ | |||||
| class CreateSites < ActiveRecord::Migration[5.2] | |||||
| def change | |||||
| create_table :sites do |t| | |||||
| t.string :name, comment: "中文名称" | |||||
| t.string :url, comment: "具体链接" | |||||
| t.string :key, comment: "标识" | |||||
| t.integer :site_type, comment: "分类,按照分类编排链接" | |||||
| t.timestamps | |||||
| end | |||||
| end | |||||
| end | |||||